使用特定的MKRoute信息打开Apple Maps应用程序

时间:2015-06-19 06:15:52

标签: ios swift ios8 mapkit apple-maps

我正在尝试在我的Swift应用程序(iOS 8+目标)中显示A点和B点之间的所有可能路线。我允许用户选择我的应用程序中的任何一个可能的路线。接下来,我希望用户能够使用

在Apple Maps应用程序中导航所选路线(MKRoute)
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地图应用程序中的所有可能路线中重新选择。

我不确定这是否可行,所以任何指针都会有所帮助。谢谢!

2 个答案:

答案 0 :(得分:5)

documentation中,并未说可以将预先配置的路径传递给原生地图应用。所以你不可能做你想做的事。

如果这是实现它的无证方式,我想知道。

答案 1 :(得分:1)

是的,您可以使用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")!)

    }