我有一个项目,它仅限于使用苹果地图,corelocation和苹果的mapkit-不允许使用第三方接口。
我需要显示一个显示用户当前位置的地图视图(标准蓝点),同时在离用户当前位置最近的道路上放置一个图钉——一个"对齐道路",这是对用户最近位置的最佳估计。
我知道如何检索用户的当前地址并使用返回的街道名称和地址,但我不知道如何将图钉添加到 mkmapview 中生成的街道。我已经查看了 mkdirectionsrequest,但不确定如何调整返回的数据来解决此问题。
提前感谢您的帮助!
我认为您可以通过调整位置服务模式来完成定位服务的道路捕捉。
CLLocationManager 上的 Apple 开发者文档提供四种"活动"模式:
- 其他 ~ 未指定
- 汽车 ~ 在汽车、卡车、公路车辆中
- 健身~行人相关活动
- 其他导航 ~ 火车、飞机、轮船
(没有评论第一和第四之间的歧义...开发人员文档中也比我上面的几个字摘要更详细)
基本上,您将CLActivityType
设置为CLActivityTypeAutomotiveNavigation
,并且假设您在公路车辆中,它会做明智的事情。据我所知,这更积极地捕捉到车辆道路,尽管你仍然受到苹果地图保真度的限制。
对于捕捉到道路要素,您需要该街道的纬度和经度坐标序列。您通常永远不会获得该矢量信息,因为该矢量数据的所有者(TomTom和诺基亚)不允许这样做。
只有基于OpenStreetMap的数据是免费的,并且矢量数据可用。
ios 使用 TomTom 数据,并且您不会获得街道折线的坐标。