Найти - Пользователи
Полная версия: Сортировка по расстоянию от объекта на глобусе.
Начало » Django » Сортировка по расстоянию от объекта на глобусе.
1 2
vvp91
helm2004
vvp91, и да ваша формула не правильна, ибо Земля естмь шар, а из сего значит что растояние между точками будет дуга :)
Вспомните геометрию (проекции), да и теорема Пифагора от перехода в сферические координаты не меняется. Да и координаты задаются в угловых мерах, да и дуга по поверхности считается в угловых мерах.
В общем, прежде чем высказываться о неверности, надо подготовиться.
vvp91
helm2004
vvp91 Дёргать БД, при большой нагрузке(может он пишет для диспетчеров аэропортов), когда все маршруты знакомы, а аэропорта появляются не часто, когда известна марка самолёта и параметры аэропорта который этот самолёт готов принять, то лучше всё это хранить в отсортированом виде, для пущей производительности и здоровью во благо.
В ПО для диспетчеров заложены известные расстояния по коридорам авиадвижения, которые хранятся и используются для расчетов.
Скорее здесь ПО, обрабатывающее данные GPS.
Координаты точек задаются в угловых мерах, расчет все равно проводить по координатам конкретной внешней точки, переданными как параметры (Lat0,Long0) в запрос.
Пример запроса поиска точек в окрестности :Delta градусов для таблицы step(id,time,latitude,longitude) и произвольной точки, заданной пользователем в интерфейсе (:Lat0,:Long0), причем все угловые меры заданы в градусах и их долях:
select *
from STEP as S
where ((S.LATITUDE-:Lat0)*(S.LATITUDE-:Lat0)+(S.LONGITUDE-:Long0)*(S.LONGITUDE-:Long0))<=:Delta*:Delta
Аналогично и с сортировками.
Работать будет влет, даже не заметите, особенно по сравнению с выборкой на клиента.
Когда займетесь блошиной оптимизацией, построите тонкие индексы по LONGIUTDE, LATITUDE, раскроете скобки в выражении, параметры будете передавать на вычисление уже расчитанными. Но до блошиной оптимизации не дойдет.
helm2004
Может быть - спорить не буду.
fth
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