3

我正在尝试使用 MKDirections API 在 iOS 中实现转弯导航系统。我能够获得路线的方向并可以在地图上绘制折线,并且当导航启动时,应用程序开始使用 Steps 数组中的 MKRouteStep 对象显示说明。现在的问题是,由于 MKRouteStep 对象中的距离是用户在遍历步骤路径时所覆盖的距离,因此我无法确定如何计算该距离。有没有办法计算这个距离目前我正在计算距离在两个坐标之间,即最后一条指令与用户当前位置显示时的坐标,如果这个距离等于 MKRouteStep 中提到的距离,我正在显示下一条指令,因此它延迟了要传递给用户的指令。

如果有任何方法可以识别此 MKRouteStep 结束的坐标或区域,我可以计算用户是否在该区域中,然后显示下一条指令。可能这可以解决您的想法,但是为此我将如何知道此 MKRouteStep 从 MKRouteStep 的折线数组结束的坐标或区域?

请建议是否有任何其他好的解决方案。非常感谢任何帮助。

谢谢。

4

1 回答 1

7

由于没有人回答我的问题,所以我自己回答,以便它可以帮助寻找相同问题的人。

因此,我们可以使用 MKRouteStep 提供的折线数组的最后一个坐标,而不是使用 MKRouteStep 的距离值来计算何时显示下一条指令。例如:

MKMapPoint mapPointForEndOfRouteStep = routeStep.polyline[routeStep.polyline.pointCount - 1];

现在您可以在其周围创建一个区域并检查您当前的位置是否在该区域内。

于 2015-06-18T05:29:07.293 回答