Форум сайта python.su
0
Дано множество точек на глобусе заданных в виде широты и долготы и хранящихся в БД.
Необходимо вывести список всех этих точек отсортированных по дальности от некоторой заданной точки.
Возможно ли решить как-либо эту задачу не высчитывая каждый раз расстояние между точками или не составляя матрицу расстояний между всеми точками?
Офлайн
0
Может и есть какой-то хитрый алгоритм для этого …
Я бы использовал какую-то spatial database (например PostGIS для Postgres) и одним запросом все это выводил. Никакой матрицы Вам самому не прийдется строить.
Офлайн
9
Вторым вариантом есть использование noSQL баз данных, например, MongoDB или Matisse, где данные можно хранить в json формате.
Офлайн
2
helm2004может в сторону geohash посмотреть, правда придется этот хэш заранее создать
Может и есть какой-то хитрый алгоритм для этого …
Офлайн
2
ну и на разные гео расширения (для постгреса точно есть) но по этому поводу ничего толком сказать не смогу, так как не использовал, просто в курсе, что они есть
Офлайн
9
zheromo я такого не писал, но если дадите 100 гривен какому нибуть детскому дому от моего имени, то ладно, аффтар я.
Офлайн
2
helm2004можно в рубли по курсу, заранее извиняюсь
100
Офлайн
0
Казалось бы, причем тут django?
—
В запросе сортировать по квадрату расстояния , учесть западную и восточную долготу (longitude) и северную и южную широту (latitude) можно разными знаками.
Отредактировано (Фев. 24, 2011 09:12:47)
Офлайн
9
vvp91 Дёргать БД, при большой нагрузке(может он пишет для диспетчеров аэропортов), когда все маршруты знакомы, а аэропорта появляются не часто, когда известна марка самолёта и параметры аэропорта который этот самолёт готов принять, то лучше всё это хранить в отсортированом виде, для пущей производительности и здоровью во благо.
Офлайн
9
vvp91, и да ваша формула не правильна, ибо Земля естмь шар, а из сего значит что растояние между точками будет дуга :)
Офлайн