我的应用程序需要从10个集合中获取到用户的“最近”步行点。我已经看到MKDirections使用“calculateDirectionsWithCompletionHandler”对单个源(目标位置)进行此操作。我的问题是,我是否发出10个请求,然后检查哪个请求是距离最近的请求,或者有一种发送多个目的地的方式,而响应将是最接近的请求?

谢谢

最佳答案

据我所知,对于MKDirections请求,无法指定两个以上的点。您建议的创建10个独立请求的解决方案在理论上应该可行,但请记住:

  • MKDirections不会在设备上本地计算路线,但是会到达远程API,该路线会计算路线并返回响应。如果您要计算10条路线,则在等待所有结果返回之前,用户可能会有明显的延迟。
  • 因为路线是使用远程API计算的,所以Apple可能会对此表示不满意-如果您过于频繁地点击其路线API,它们可能会扼杀您,或者如果他们将其提交给App Store,则他们可能会拒绝该应用看到这正在发生。

  • 我不确定您的确切要求,但是根据您需要的精度,一种解决方案是使用haversine formula计算起点和每个终点之间的距离,这将为您提供两点之间的距离,如下所示:乌鸦苍蝇。由于您是在计算步行方向(与行驶相反,因此您只能沿着特定的道路行驶,因此会受到交通影响),因此从这些计算中得出的最接近距离很可能是实际步行距离/时间的最接近值。然后,您可以针对这些详细信息发出一个MKDirections请求。

    关于ios - 适用于多个目的地和单个来源的iOS MKDirections,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23104337/

    10-08 20:55