2010-10-30 3 views
0

У меня есть куча аэропортов с геокоординатами, хранящимися в блеске.Поиск ближайшего местоположения с помощью CLLocationManager

Я использую CLLocationManager для получения текущего местоположения.

Теперь я хочу просмотреть каждый элемент в свете и сравнить его с текущим местоположением и заказать аэропорты от ближайшего до самого дальнего.

Мой алгоритм отстой - любые идеи?

ответ

1

Если у вас есть экземпляры CLLocation, вы можете получить их относительное расстояние с помощью:

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

Теперь вы пишете:

Мой алгоритм отстой - какие-нибудь идеи?

Ну, какой у вас алгоритм? Почему это сосать? Любой код, который у вас есть?

С точки зрения высокого уровня, я хотел бы сделать это следующим образом:

  1. вычислить distace для каждого аэропорта координату из curent расстояния в O (N), где п число координат
  2. сортировать элементы, использующие какой-то стабильный алгоритм, такой как QuickSort (... NSArray должен работать нормально ...), который берет вас O (n * log n) или заставляет его работать, чтобы вы могли использовать сортировку radix, которая работает в O (n)

Есть ли причина, по которой это не сработает? :)