Проблема с указанием местоположения XML-файла - PullRequest
1 голос
/ 13 августа 2011

Я делаю заявление о местонахождении.У меня есть XML-файл на сервере, содержащий информацию о разных магазинах с координатами широты и долготы.Теперь в моем приложении я могу получить текущие координаты широты и долготы, а также проанализировать XML-файл.

Но как мне определить ближайший магазин по моим текущим координатам из файла XML?

Если мы используем Google Api, он возвращает вам XML-файл, содержащий ближайшие местоположения в соответствии с запросом.но здесь, в моем случае, я использую XML-файл на сервере.

Пожалуйста, предложите

Ответы [ 2 ]

3 голосов
/ 13 августа 2011

Я думаю, вам лучше преобразовать ваши данные в формат БД (sqlite / mysql), чтобы пользователь мог указать свою точку широты и долготы и просто получить верный правильный элемент ... в противном случае вам потребуетсяанализировать и сравнивать весь файл каждый раз ... но вы все равно можете использовать эту формулу (на самом деле это просто смещение шага сравнения в запрос к БД, а не в ваше приложение)

Правка: в этом примереSQL-запрос, который реализует haversine и возвращает x результатов: MySQL Great Circle Distance (формула Haversine)

2 голосов
/ 13 августа 2011

Это формула haversine для расчета расстояния между двумя точками на земле:

a = sin²(Δlat/2) + cos(lat1)*cos(lat2)*sin²(Δlong/2);
c = 2*atan2(√a, √(1−a));
d = R*c;

Вы можете легко адаптировать его в obj-c.

Обратите внимание: R - радиусземля = 6 371 км;

Так что просто рассчитайте широту и разницу долгот обеих точек и рассчитайте d на ее основе.

Надеюсь, это поможет.

...