Найти ближайшие точки широты и долготы - PullRequest
8 голосов
/ 01 февраля 2010

Вопрос о широте и долготе ... Возможно, глупый.

У меня есть набор широты и долготы для разных мест. И у меня есть широта и долгота места, в котором я нахожусь.

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

Не могли бы вы пролить свет на это?

Спасибо, J

Ответы [ 2 ]

9 голосов
/ 01 февраля 2010

Зависит от того, как расставлены точки.

Например - если большинство точек находятся на парковке, тогда Евклидово расстояние должно работать хорошо.

В других случаях - Геодезическое расстояние должно быть вычислено. Эта ссылка должна помочь вам получить больше информации.

Вот преобразование из десятичного формата в градус-минуты-секунды и наоборот.

ура

4 голосов
/ 16 октября 2015

Вы можете использовать этот SQL. затем он выберет ближайший Lat, Lng из ваших записей в БД.

SELECT id, lat, lng, ((ACOS (SIN (your_lat * PI () / 180) * SIN (lat * PI () / 180) + COS (your_lat * PI () / 180) * COS (lat * PI () / 180) * COS ((your_long - lng) * PI () / 180)) * 180 / PI ()) * 60 * 1.1515) AS distance ОТ your_table_name ЕСТЬ distance <= '10' ЗАКАЗАТЬ ПО <code>distance ASC LIMIT 0,10

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

...