我正在开发一个应用程序需要打开Apple Maps会话,并传入纬度和经度坐标以从用户当前位置获取到该位置的路线。
我知道这可以在谷歌地图中完成,但是当我尝试在Apple地图中打开网址时,它只会打开地点,而不是从用户当前位置到目的地的路线。
以下是我一直使用的网址方案:
http://maps.apple.com/?ll=(someLatitude),(someLongitute)
代码:
UIApplication.sharedApplication().openURL(NSURL(string:"http://maps.apple.com/?ll=\(locationLat),\(locationlong)")!)
非常感谢任何帮助。谢谢!
答案 0 :(得分:19)
尝试此代码,AppleMap将打开从设备当前位置标记的指示到指定坐标的位置。
let coordinate = CLLocationCoordinate2DMake(currentLat, currentLong)
let mapItem = MKMapItem(placemark: MKPlacemark(coordinate: coordinate, addressDictionary:nil))
mapItem.name = “Destination/Target Address or Name”
mapItem.openInMapsWithLaunchOptions([MKLaunchOptionsDirectionsModeKey : MKLaunchOptionsDirectionsModeDriving])
答案 1 :(得分:6)
尝试使用
NSURL(string:"http://maps.apple.com/?saddr=\(currentLat),\(currentLong)&daddr=\(destinationLat),\(destinationLong)")!
with currentLat currentLong是用户的当前位置,destinationLat destinationLong是目标位置。
更多参数(例如:传输类型)请查看here
答案 2 :(得分:0)
基于larva's answer,但我建议您使用"maps://"
URL方案而不是"http://maps.apple.com/"
来绕开Safari。
就像这里:
URL(string: "maps://?saddr=\(currentLat),\(currentLong)&daddr=\(destinationLat),\(destinationLong)")