Найти - Пользователи
Полная версия: Сортировка по расстоянию от объекта на глобусе.
Начало » Django » Сортировка по расстоянию от объекта на глобусе.
1 2
fth
Дано множество точек на глобусе заданных в виде широты и долготы и хранящихся в БД.
Необходимо вывести список всех этих точек отсортированных по дальности от некоторой заданной точки.
Возможно ли решить как-либо эту задачу не высчитывая каждый раз расстояние между точками или не составляя матрицу расстояний между всеми точками?
Sleepwalker
Может и есть какой-то хитрый алгоритм для этого …

Я бы использовал какую-то spatial database (например PostGIS для Postgres) и одним запросом все это выводил. Никакой матрицы Вам самому не прийдется строить.
helm2004
Вторым вариантом есть использование noSQL баз данных, например, MongoDB или Matisse, где данные можно хранить в json формате.
zheromo
helm2004
Может и есть какой-то хитрый алгоритм для этого …
может в сторону geohash посмотреть, правда придется этот хэш заранее создать
а так вполне подходит
zheromo
ну и на разные гео расширения (для постгреса точно есть) но по этому поводу ничего толком сказать не смогу, так как не использовал, просто в курсе, что они есть
helm2004
zheromo я такого не писал, но если дадите 100 гривен какому нибуть детскому дому от моего имени, то ладно, аффтар я.
zheromo
helm2004
100
можно в рубли по курсу, заранее извиняюсь
vvp91
Казалось бы, причем тут django?

В запросе сортировать по квадрату расстояния , учесть западную и восточную долготу (longitude) и северную и южную широту (latitude) можно разными знаками.
helm2004
vvp91 Дёргать БД, при большой нагрузке(может он пишет для диспетчеров аэропортов), когда все маршруты знакомы, а аэропорта появляются не часто, когда известна марка самолёта и параметры аэропорта который этот самолёт готов принять, то лучше всё это хранить в отсортированом виде, для пущей производительности и здоровью во благо.
helm2004
vvp91, и да ваша формула не правильна, ибо Земля естмь шар, а из сего значит что растояние между точками будет дуга :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB