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

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

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

谢谢。

最佳答案

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

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

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

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

07-27 21:58