PHP MySQL - альтернатива Левенштейна на десятичной
У меня есть набор данных с координатами широты и долготы (два отдельных десятичных столбца). Мне нужно выполнить поиск по ним и упорядочить их по близости, основываясь на предоставленной координате широты / долготы.
Я не против преобразования столбцов в 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 ответ
Существует множество методов для расчета географического расстояния между наборами точек. Некоторые точны там, где другие быстры. Какой метод вы выберете, зависит от ваших требований. Поскольку здесь, в Stack Overflow, есть много вопросов с ответами, на которые есть конкретные ответы: