如何在 iOS 中使用多个点在 Apple 地图中显示路线

Posted

技术标签:

【中文标题】如何在 iOS 中使用多个点在 Apple 地图中显示路线【英文标题】:How to show route in Apple maps with multiple points in iOS 【发布时间】:2017-04-12 13:30:56 【问题描述】:

我的路线有多点(多于 2 个),如何打开 Apple 地图应用并显示?

我知道可以显示两点之间的路线:

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

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

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

但我可以为 Apple Maps 找到类似的解决方案

编辑:因为我也可以显示这样的 Apple 地图:

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

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

【问题讨论】:

【参考方案1】:

正如 MKMapItem 文档所述:

如果您在 launchOptions 字典,mapItems 数组不能超过 里面有两个项目。如果数组包含一项,则地图应用程序 生成从用户当前位置到该位置的路线 由地图项指定。如果数组包含两个项目,则 Maps 应用程序生成从第一个项目的位置到 数组中第二项的位置。

所以答案是否定的。

【讨论】:

可能是稍长一点的答案。如果您有足够的点来定义路径,那么您可以使用 MKPolyline 和 MKPolylineRenderer 将路线显示为叠加层 @MoinShirazi 我想我不仅应该添加示例,还应该添加 Apple 文档,因为我的示例旨在承认 MKMapItem 的限制。我添加了一个编辑。 - @Russell,是的,我可以,但你看,我确实需要逐向导航,所以我自己画路线是不可能的。

以上是关于如何在 iOS 中使用多个点在 Apple 地图中显示路线的主要内容,如果未能解决你的问题,请参考以下文章

在Google地图上创建多个标记点在C#对象的Web应用程序中

在 Firebase 数据库中的 MKMapView 上放置多个标记

百度地图 ~~关于点在多边形中的判断

如何更新 Apple 地图中的路线 - iOS 13.0 中的 Xcode Swift 5?

如何使用谷歌地图检测一个点在多边形内?

如何在 iOS 中使用多个注释来增加 Apple Mapkit 的缩放