【问题标题】:snap to road for apple maps为苹果地图捕捉道路
【发布时间】:2013-11-17 21:02:53
【问题描述】:

我有一个项目受限于使用苹果地图、核心定位和苹果的 mapkit —— 不允许使用 3rd 方接口。

我需要显示一个显示用户当前位置的地图视图(标准蓝点),同时在离用户当前位置最近的道路上放置一个大头针 - 一个“捕捉到道路”,这是对用户最近位置的最佳估计位置。

我知道如何检索用户的当前地址并使用返回的街道名称和地址,但我不知道如何在 mkmapview 中将 pin 添加到生成的街道。我查看了 mkdirectionsrequest,但不确定如何调整返回的数据来解决这个问题。

提前感谢您的帮助!

【问题讨论】:

    标签: ios map navigation gps mapkit


    【解决方案1】:

    要获取道路特征,您需要该街道的纬度和经度坐标序列。您通常永远不会获得该矢量信息,因为该矢量数据的所有者(TomTomNokia)不允许这样做。

    只有基于 OpenStreetMap 的数据是免费的,并且矢量数据是可用的。

    ios 使用 TomTom 数据,正如预期的那样,您不会得到街道折线的坐标。

    【讨论】:

    • 你会怎么做?我搜索了 OpenStreetMaps,除了昂贵的 API,我还找到了免费的 WhirlyGlobe-Maply 框架。这一切都带有它自己的矢量图层,如建筑、街道、国家边界等。但鉴于我有一个街道矢量图层,我如何检查我的routeArray 中的任何 CLLocation 是否在街道边界内喜欢吗?
    • @Vincenzo 从 Opemnstreetmap 您下载街道图层,然后您将获取多边形(首先接近所有,下一个方法使用地理索引),逐线段迭代它,从 WGS84 转换线到笛卡尔 x,y 空间。应用学校数学计算到线段的垂直距离,并取最小值。
    【解决方案2】:

    我想你可以通过定位服务的模式来完成对道路的抓拍。

    Apple 的 Developer docs on CLLocationManager 提供四种“活动”模式:

    • 其他 ~ 未指定
    • 汽车~在汽车、卡车、公路车辆中
    • 健身 ~ 行人相关活动
    • OtherNavigation ~ 火车、飞机、船

    (对于第一个和第四个之间的歧义没有评论......开发者文档中的细节也比我上面的几句话总结更多)

    基本上,您将CLActivityType 设置为CLActivityTypeAutomotiveNavigation,假设您在公路车辆中,它会做一些明智的事情。从我所见,这更积极地捕捉到车辆道路,尽管您仍然受到 Apple 地图保真度的限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2018-07-20
      • 2012-05-17
      • 1970-01-01
      相关资源
      最近更新 更多