Подтвердить что ты не робот

Откройте приложение Apple Maps со специальной информацией MKRoute

Я пытаюсь отобразить все возможные маршруты между точками A и B в моем приложении Swift (цель iOS 8+). Я разрешаю пользователю выбирать любой из возможных маршрутов в моем приложении. Затем я хотел бы, чтобы пользователь мог перемещаться по выбранному маршруту (MKRoute) в приложении Apple Maps, используя

var fullRouteResponse:MKDirectionsResponse? //This variable has MKRoute information

@IBAction func openInAppleMaps(sender: AnyObject)
{
    let placemark = MKPlacemark(coordinate: destinationCoordinate!, addressDictionary: nil)

    mapItem = MKMapItem(placemark: placemark)

    mapItem.openInMapsWithLaunchOptions(
        [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving,
        MKLaunchOptionsMapTypeKey: MKMapType.Standard.rawValue,
        MKLaunchOptionsShowsTrafficKey: true ])

}

Это прекрасно открывает приложение "Карты", но я не могу понять, как передать конкретную выбранную информацию MKRoute, чтобы пользователь не перебирал все возможные маршруты в приложении Apple maps.

Я не уверен, что это возможно, поэтому любые указатели действительно помогут. Спасибо!

4b9b3361

Ответ 1

В документации не говорится, что можно пройти предварительно настроенный путь к встроенному приложению Карт. Таким образом, невозможно делать то, что вы хотите.

Если это недокументированный способ достижения этого, я хотел бы знать.

Ответ 2

Да, вы можете сделать это с помощью MapLink:

В соответствии с MapLink Documentation вы можете легко заполнить параметры "saddr" и "daddr". Вот так:

if (UIApplication.sharedApplication().canOpenURL(NSURL(string:"http://maps.apple.com")!)) {
      UIApplication.sharedApplication().openURL(NSURL(string:
        "http://maps.apple.com:/?saddr=\(YOUR_SOURCE_LATITUDE),\(YOUR_SOURCE_LONGITUDE)&daddr=\(YOUR_DESTINATION_LATITUDE),\(YOUR_DESTINATION_LONGITUDE)&dirflg=d")!)

    }