iOS - 打开具有纬度和经度方向的Apple地图

时间:2016-07-13 17:25:38

标签: ios swift apple-maps

我正在开发一个应用程序需要打开Apple Maps会话,并传入纬度和经度坐标以从用户当前位置获取到该位置的路线。

我知道这可以在谷歌地图中完成,但是当我尝试在Apple地图中打开网址时,它只会打开地点,而不是从用户当前位置到目的地的路线。

以下是我一直使用的网址方案:

http://maps.apple.com/?ll=(someLatitude),(someLongitute)

代码:

UIApplication.sharedApplication().openURL(NSURL(string:"http://maps.apple.com/?ll=\(locationLat),\(locationlong)")!)

非常感谢任何帮助。谢谢!

3 个答案:

答案 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)")