0

给定一条从起点到目标的 1000 米长的路径,由有限数量的CLLocation点组成(估计大约 100 个)。假设用户在路径上的某处并且CLLocation来自 iOS 定位服务,那么计算沿路径向前的最近点的最佳方法是什么?

使用 找到最近的点很容易-[CLLocation distanceFromLocation:],但是当用户通过一个点并移向下一个点时,前一个点仍然是最近的点,直到他通过前一个点和下一个点之间的中间点。

4

1 回答 1

0

您可以保留一个由排序的(从路径开始到结束)CLLocation 点(假设为 100)组成的数组,并仅评估这些点以找到最近的将被访问的点。要找到访问点,您需要保留起始位置并测量从起点到用户当前位置的距离(d1)。如果 d1 > 从开始到排序数组中下一个点的距离,并且当前位置在排序数组中的下一个点附近(10 - 100 m),则删除该点,否则用户没有访问/经过该位置,所以你保留它在排序后的数组中。

于 2013-03-20T13:01:59.170 回答