给定一条从开始到目标的1000米长的路径,包括有限数量的CLLocation
点(估计大约100)。假设用户位于路径上的某个位置且来自iOS位置服务的CLLocation
,那么计算沿路线最近的前向点的最佳方法是什么?
使用-[CLLocation distanceFromLocation:]
找到最近的点很容易,但是当用户经过一个点并向下移动时,前一个点仍然是最近的点,直到他经过上一个和下一个点之间的中间点。
答案 0 :(得分:0)
你可以保持一个由排序(开始到路径末尾)CLLocation点(假设100)组成的数组,并仅评估那些poins以找到最接近的点。要查找访问点,请保留起始位置并确定从用户的起点到当前位置的距离(d1)。如果d1>排序数组中从开始到下一个点的距离,当前位置在附近(10 - 100 m)排序数组中的下一个点然后删除其他用户未访问/通过该位置的点,以便将其保留在已排序的位置阵列。