2010-10-30 101 views
0

我有一堆机场,地理坐标存储在glist中。使用CLLocationManager查找最近的位置

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

我现在想通过在为Glist每个项目,并将其与当前的位置和顺序机场从最接近最远。

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

回答

1

如果你有CLLocation情况下,你可以使用得到他们的相对距离

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

现在你写:

我的算法很烂 - 任何想法?

那么,什么是你的算法?为什么它吸?你有任何代码?

从高层次的角度来看,我会做这样的:

  1. 计算每个机场的distace从澳CURENT距离(n),其中n为坐标的数
  2. 排序坐标使用一些稳定的算法,如QuickSort(... NSArray的排序应该工作正常...),它需要O(n * log n),或使其工作,以便您可以使用基数排序在O(n)

是有一个原因这是行不通的? :)