У меня в приложении для Android есть таблица базы данных с географическими точками (лат и долг - значения в десятичных градусах), около 1000 точек. И мне нужно выбрать 20 ближайших точек к определенной географической точке.
Я нашел в Stackoverflow ответ о том, как вычислить расстояние между двумя географическими точками, и был очень счастлив, пока не попытался написать свой запрос. Я обнаружил, что невозможно использовать тригонометрические функции во встроенном sqlite Android.
Но тогда у меня есть идея. Мне действительно не нужно вычислять расстояние. Ближайшая точка находится к другой, меньшая разница в их географических координатах должна быть.
Как я мог использовать этот факт? Достаточно ли упорядочить сохраненные точки по (lat_0 - lat_n) ^ 2 + (lon0-lon_n) ^ 2, где lat_0 и lon_0 - географические координаты данной точки?
Спасибо,
Mur
UPD
Итак, лучший способ получить ответ на мой вопрос - проверить подход, который я описал выше.
Работает довольно хорошо, но не совсем точно по сравнению с точным расстоянием.
Так что, если вам просто нужно вычислить расстояние, это решение в порядке, но в моем случае мне также нужно было упорядочить станции по расстоянию и я не мог использовать это решение.
Благодарю Джона в CashCommons и Philip. Спасибо, ребята