2017-04-12 18 views
0

我有一个多点(超过2)的路线,我如何打开Apple地图应用程序并显示它?如何在iOS中的多个点显示苹果地图路线

我知道这是可能到2点之间显示路线:

let mapItems = [MKMapItem(placemark: MKPlacemark(coordinate: coordinat1, addressDictionary: nil)), 
       MKMapItem(placemark: MKPlacemark(coordinate: coordinat2, addressDictionary: nil))] 
MKMapItem.openMaps(with: mapItems, launchOptions: [MKLaunchOptionsDirectionsModeKey : MKLaunchOptionsDirectionsModeDriving]) 

但它仅支持两点。我也知道这可以使用谷歌地图使用这样的URL来实现:

https://www.google.com/maps/dir/<lat>,<lng>/<lat>,<lng>/.../.../ 

但我可以找到苹果地图

编辑类似的解决方案:既然我可以给苹果地图这样还有:

UIApplication.shared.openURL(URL(string: "http://maps.apple.com/?daddr=\(coordinate.latitude),\(coordinate.longitude)&dirflg=d")!) 

也许有某种方式可以传递更多坐标?

回答

1

由于MKMapItem文档状态:

如果指定的 launchOptions词典MKLaunchOptionsDirectionsModeKey选项,mapItems阵列必须对自己的不超过 两个项目。如果数组包含一个项目时,地图应用 生成从用户的当前位置到由地图项目指定的位置 。如果数组包含两个项目,则地图应用程序会从第一个项目的位置到第二个项目的 位置生成指示。

所以答案是否定的。

+1

稍长的答案是也许。如果您有足够的点来定义路径,那么您可以使用MKPolyline和MKPolylineRenderer将路线显示为叠加层 – Russell

+0

@MoinShirazi我想我应该不仅添加了该示例,还添加了Apple文档,因为我的示例旨在确认'MKMapItem'限制。 我添加了一个编辑。 - @Russell,是的,我可以,但你知道,我确实需要转弯转弯的导航,所以绘制路线我的自我是不可能的。 – Xernox

相关问题