我正在尝试在我的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地图应用程序中的所有可能路线中重新选择。
我不确定这是否可行,所以任何指针都会有所帮助。谢谢!
答案 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")!)
}