使用CLLocationManager查找最近的位置

时间:2010-10-30 09:37:13

标签: iphone objective-c

我有一堆机场,地理坐标以闪电般的方式存放。

然后我使用CLLocationManager获取当前位置。

我现在想要浏览一下闪电中的每个项目,并将其与当前位置进行比较,并从最近到最远的顺序订购机场。

我的算法很糟糕 - 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您有CLLocation实例,则可以使用以下方法获取相对距离:

- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location

现在你写:

  

我的算法很糟糕 - 有什么想法吗?

嗯,你的算法是什么?为什么这么糟透了?您有任何代码吗?

从高层来看,我会这样做:

  1. 从O(n)中的临近距离计算每个机场坐标的距离,其中n是坐标数
  2. 使用一些稳定的算法对项目进行排序,例如QuickSort(... NSArray的排序应该可以正常工作...),它会带你O(n * log n),或者使它工作,这样你就可以使用工作的基数排序了为O(n)
  3. 有没有理由说这不起作用? :)