ΠΠ΅ΡΠΎΠ΄Ρ NSLog ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ ΠΊΠΎΠ΄Π° Π²ΡΠ²ΠΎΠ΄ΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π°Π΄ΡΠ΅Ρ, ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π³Π΅ΠΎΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
Country = United States
Postal Code = 95472
Locality = Sebastopol
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π»ΠΈΠΌΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π³Π΅ΠΎΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π·Π° ΠΎΠ΄ΠΈΠ½ Π΄Π΅Π½Ρ. ΠΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ»ΡΠΆΠ± Π² iOS. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ API. Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ ΠΈΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, Π΅ΡΠ»ΠΈ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π³Π΅ΠΎΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π² iOS SDK. Π§ΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π³Π΅ΠΎΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° CLGeocoder. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ β ΠΎΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π³Π΅ΠΎΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎΠΎΠ±ΡΠ°ΡΡΡΡ Π±Π»ΠΎΠΊΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ reverseGeocodeLocation: completionHandler:.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π Π°Π·Π΄Π΅Π» 9.7.
9.9. ΠΠΎΠΈΡΠΊ Π² ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΠΈΠΌ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄, ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡΡ ΠΈΠΌ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΡΠ΅ΡΡΠΎΡΠ°Π½Ρ ΠΈΠ»ΠΈ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ½ΡΠ΅ Π·Π°Π»Ρ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΠΎΠΌ Π½Π° ΠΊΠ°ΡΡΠ΅. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅Π½ΡΡΠ΅ Π³ΠΎΡΠΎΠ΄Π° ΠΈ Π²ΠΈΠ΄ΠΈΡ ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΡΡΠ΅, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅ΡΡΠΈ Π² ΡΡΡΠΎΠΊΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»ΠΎΠ²ΠΎ Β«ΡΠ΅ΡΡΠΎΡΠ°Π½ΡΒ» β ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ Π·Π°ΠΏΡΠΎΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΈΠ΄Ρ, Π±Π΅Π· ΠΏΡΠ΅ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΡΡΠΎ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ. ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΈΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠ΄Π½Ρ Π±ΠΎΠ»ΡΡΡΡ ΠΊΠ°ΡΡΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΈ ΠΎΠ±ΡΡΠ½Π°Ρ Π±ΡΠΌΠ°ΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°. ΠΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° ΠΊΠ°ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΈΡΠΊΠ°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΠΌΠ΅ΡΡΠΎ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡΠΎΠΌΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ. Apple Π²ΠΊΠ»ΡΡΠΈΠ»Π° Π² iOS SDK ΡΡΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡΠΊΠ°ΡΡ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΊΠ°ΡΡΠ΅. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠΈΡΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΏΡΠΎΡΡ. ΠΡ Π²Π°Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π²Π²Π΅ΡΡΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«ΡΠ΅ΡΡΠΎΡΠ°Π½ΡΒ» ΠΈΠ»ΠΈ Β«ΠΊΠ°ΡΠ΅, β ΠΈ SDK Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π·Π° Π²Π°Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π²ΠΈΠ΄Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄ (Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ° ΡΠΎΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΡΠ΅Π½ΡΡΠ΅ ΠΊΠ°ΡΡΡ.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΠ» Π½Π°ΠΌ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ), ΠΌΡ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ ΠΊΠ»Π°ΡΡ MKLocalSearch ΠΈ Π²ΡΠ±Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΠ΅ΡΡΠΎΡΠ°Π½Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ ΠΏΠΎΠ±Π»ΠΈΠ·ΠΎΡΡΠΈ ΠΎΡ Π½Π΅Π³ΠΎ. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄, Π²ΠΎΡ ΡΠ°ΠΊ:
#import Β«ViewController.hΒ»
#import <MapKit/MapKit.h>
@interface ViewController () <MKMapViewDelegate>
@property (nonatomic, strong) MKMapView *myMapView;
@end
@implementation ViewController
ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄:
β (void)viewDidLoad {
[super viewDidLoad];
/* Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ°ΡΡΡ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ */
self.myMapView = [[MKMapView alloc]
initWithFrame: self.view.bounds];
self.myMapView.delegate = self;
/* ΠΠ°Π΄Π°Π΅ΠΌ Π΄Π»Ρ ΠΊΠ°ΡΡΡ ΡΠΈΠΏ Standard */
self.myMapView.mapType = MKMapTypeStandard;
self.myMapView.autoresizingMask =
UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;
self.myMapView.showsUserLocation = YES;
self.myMapView.userTrackingMode = MKUserTrackingModeFollow;
/* ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΅Π΅ ΠΊ Π½Π°ΡΠ΅ΠΌΡ Π²ΠΈΠ΄Ρ */
[self.view addSubview: self.myMapView];}
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ showsUserLocation ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠ°Π²Π½ΠΎ YES, ΡΠΎ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄ ΠΈΡΠ΅Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Ρ Π½Π°Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΡΠΎ). ΠΡΠ΅ ΡΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Ρ ΠΎΡΠΎΡΠΎ, Π½ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊ: ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΊΠ°ΡΡΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ, Π½ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΊΡ ΠΊΠ°ΡΡΡ ΠΈ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠ°ΡΡΠ° ΠΠ΅Π»ΠΈΠΊΠΎΠ±ΡΠΈΡΠ°Π½ΠΈΠΈ, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π³Π΄Π΅-ΡΠΎ Π² ΠΡΡ-ΠΠΎΡΠΊΠ΅, ΡΠΎ ΠΎΠ½ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΡΡΡ Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΠΎΠ»Π΅Π²ΡΡΠ²Π°. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ, Π½ΡΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° userTrackingMode ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ MKUserTrackingModeFollow, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅Π½ΡΡ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠ°ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΈΠΊΠ°Π·Π°Π»ΠΈ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π²ΠΈΠ΄Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ² ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°:
β’ mapView: didFailToLocateUserWithError: β Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² Π΄Π΅Π»Π΅Π³Π°ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π²ΠΈΠ΄Ρ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ;
β’ mapView: didUpdateUserLocation: β Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² Π΄Π΅Π»Π΅Π³Π°ΡΠ΅ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ. Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ°.
Π‘Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ mapView: didFailToLocateUserWithError::
β (void) mapView:(MKMapView *)mapView
didFailToLocateUserWithError:(NSError *)error{
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Failed"
message:@"Could not get the user's location"
delegate: nil cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alertView show];
}
ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ mapView: didUpdateUserLocation::
β (void) mapView:(MKMapView *)mapView
didUpdateUserLocation:(MKUserLocation *)userLocation{
MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = @"restaurants";
MKCoordinateSpan span = MKCoordinateSpanMake(0.01, 0.01);
request.region =
MKCoordinateRegionMake(userLocation.location.coordinate, span);
MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest: request];
[search startWithCompletionHandler:
^(MKLocalSearchResponse *response, NSError *error) {
for (MKMapItem *item in response.mapItems){
NSLog(@"Item name = %@", item.name);
NSLog(@"Item phone number = %@", item.phoneNumber);
NSLog(@"Item url = %@", item.url);
NSLog(@"Item location = %@", item.placemark.location);
}
}];
}
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ. ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° naturalLanguageQuery ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π½Π°ΠΉΡΠΈ Π½Π° ΠΊΠ°ΡΡΠ΅, β Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΡΠΎΡΠ°Π½Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅Π³ΠΈΠΎΠ½ ΡΠΈΠΏΠ° MKCoordinateRegion. ΠΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ, ΠΎΠΊΡΡΠΆΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠΈΡΠΊ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠ±Π»Π°ΡΡΡ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π΄Π²ΠΈΠΆΠΊΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΊΡΡΠ³ ΠΏΠΎΠΈΡΠΊΠ° Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠ΅Π³ΠΈΠΎΠ½ΠΎΠΌ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π³ΠΈΠΎΠ½ ΡΠΎΠ·Π΄Π°Π½, Π·Π°Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° region Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°. Π‘Π΄Π΅Π»Π°Π² ΡΡΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΠΏΠΎΠΈΡΠΊΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° startWithCompletionHandler:, ΠΎΡΠ½ΠΎΡΡΡΠ΅ΠΌΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ MKLocalSearch. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π±Π»ΠΎΠΊ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ mapItems ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΎΡΠΊΠ»ΠΈΠΊΠ° Π½Π°ΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΡΠΈ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΡΠΈΠΏΡ MKMapItem. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π±ΡΠ΄ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° β Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, name, phoneNumber ΠΈ url β ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π½Π°Π½Π΅ΡΡΠΈ Π½Π° ΠΊΠ°ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ Π½Π°Ρ ΡΠΎΡΠΊΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠΈ, ΠΈΠ·ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°Π½Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠΌ Π½Π° ΠΊΠ°ΡΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 9.4.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π Π°Π·Π΄Π΅Π»Ρ 9.4β9.6.
9.10. ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π½Π° ΠΊΠ°ΡΡΠ΅
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π½Π° ΠΊΠ°ΡΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΏΠ°ΡΡΡ ΠΈΠ· ΡΠΎΡΠΊΠΈ Π Π² ΡΠΎΡΠΊΡ B.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ½ΡΡΠ°Π½ΡΠΈΡΡΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° MKDirections ΠΈ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° calculateDirectionsWithCompletionHandler:, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π’Π°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, Π° Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° MKDirectionsResponse. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΡΠΊΠ»ΠΈΠΊΠΎΠΌ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ , ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Maps (ΠΠ°ΡΡΡ). ΠΡΠΎΠΌΡ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΊΠΎΡΠ΅ Π½Π°ΡΡΠΈΠΌΡΡ.