MKdirections Маршрут прокладки между двумя заданными точками

Я использую этот учебник, чтобы создать пример приложения. Он использует представление таблицы, заполненное файлом JSon, содержащим местоположения. В подробном представлении он использует карту и помещает вывод для местоположения, выбранного в представлении списка таблиц.

Мой вопрос заключается в том, как я могу построить маршрут между текущим местоположением пользователей в качестве начальной точки и местоположением «местоположения» в качестве пункта назначения?

Теперь у меня есть 2 контакта на моей карте: 1) Текущее местоположение и 2) Место назначения, но я не знаю, как связать их с маршрутом. Открытие приложения карты по умолчанию с этими двумя аргументами не является вариантом.

Заранее благодарим за каждый ответ.

Solutions Collecting From Web of "MKdirections Маршрут прокладки между двумя заданными точками"

Используйте следующий код:

MKPlacemark *source = [[MKPlacemark alloc]initWithCoordinate:CLLocationCoordinate2DMake(sourceLatitude, sourceLongitude) addressDictionary:[NSDictionary dictionaryWithObjectsAndKeys:@"",@"", nil] ]; MKMapItem *srcMapItem = [[MKMapItem alloc]initWithPlacemark:source]; [srcMapItem setName:@""]; MKPlacemark *destination = [[MKPlacemark alloc]initWithCoordinate:CLLocationCoordinate2DMake(destinationLatitude, destinationLongitude) addressDictionary:[NSDictionary dictionaryWithObjectsAndKeys:@"",@"", nil] ]; MKMapItem *distMapItem = [[MKMapItem alloc]initWithPlacemark:destination]; [distMapItem setName:@""]; MKDirectionsRequest *request = [[MKDirectionsRequest alloc]init]; [request setSource:srcMapItem]; [request setDestination:distMapItem]; [request setTransportType:MKDirectionsTransportTypeWalking]; MKDirections *direction = [[MKDirections alloc]initWithRequest:request]; [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) { NSLog(@"response = %@",response); NSArray *arrRoutes = [response routes]; [arrRoutes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { MKRoute *rout = obj; MKPolyline *line = [rout polyline]; [self.mkMapView addOverlay:line]; NSLog(@"Rout Name : %@",rout.name); NSLog(@"Total Distance (in Meters) :%f",rout.distance); NSArray *steps = [rout steps]; NSLog(@"Total Steps : %d",[steps count]); [steps enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"Rout Instruction : %@",[obj instructions]); NSLog(@"Rout Distance : %f",[obj distance]); }]; }]; }]; 

Для получения дополнительной информации вы можете проверить документацию Apple .