Поиск окружающих пригородов на основе широты и долготы с использованием цели C - PullRequest
2 голосов
/ 12 августа 2010

Мне нужно определить объекты, которые находятся рядом с определенной широтой / долготой.У меня есть два набора объектов, хранящихся в Базовых данных:

PostalArea
- latitude
- longitude
- postcode

Store
- name 
- latitude
- longitude

Мне нужно иметь возможность извлечь запись из таблицы PostalArea, а затем найти магазины, которые находятся рядом.

Большинство примеров, которые я нашел, основаны на SQL.Я надеюсь, что кто-то может помочь мне с этим работать с Core Data.В идеале я хотел бы ограничить результирующий набор определенным числом (скажем, 10), а не ограничивать его на основе расстояния.

РЕДАКТИРОВАТЬ: вытягивание всех записей в память - вариант, если это необходимо.

Ответы [ 2 ]

1 голос
/ 12 августа 2010

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

Обновление

Когда у вас есть объекты в памяти, вы можете делать с ними забавные вещи. Например, у вас может быть временное значение с именем «currentPoint», а затем вы можете получить KVO в результирующем массиве, например:

[resultingArray setValue:aPoint forKey:@"currentPoint"];

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

Это один пример, я уверен, что есть и другие способы, но общая идея состоит в том, чтобы поместить подмножество мест в память, чтобы потом можно было рассчитать расстояние и, наконец, отсортировать.

0 голосов
/ 12 августа 2010

Как вы относитесь к услуге REST? Если вы используете API Google, вы можете запросить именно эти вещи. Для Objective C. доступно множество JSON-интерфейсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...