PHP MySQL - альтернатива Левенштейна на десятичной - PullRequest
0 голосов
/ 22 января 2012

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

Я не против преобразования столбцов в varchar для поиска совпадений / против, но я знаю, что сопоставление / против оптимизировано для слов.

Как лучше всего отсортировать координаты по расстоянию? При необходимости я могу сделать это через PHP, хотя я бы предпочел сделать это на уровне объектов, чтобы уменьшить нагрузку на сервер и время загрузки.

В настоящее время я проверяю подход «матч / против».

Подводя итог:

С учетом -90.23, 13.18 вернуть ближайшие пары координат широта / долгота в порядке близости.

Пример результата:

[1] -90.24, 13.17
[2] -90.18, 12.99
[3] -91.78, 16.98
[4] -90.27, 24.78

1 Ответ

0 голосов
/ 22 января 2012

Существует множество методов для расчета географического расстояния между наборами точек. Некоторые точны там, где другие быстры. Какой метод вы выберете, зависит от ваших требований. Поскольку здесь, в Stack Overflow, есть много вопросов с ответами, на которые есть конкретные ответы:

https://stackoverflow.com/search?tab=votes&q=distance%20mysql

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