Найти окружности в которые входит указанная точка

Ответить
Andy124321
Новоприбывший
Сообщения: 1
Зарегистрирован: 06 фев 2020, 17:26
Репутация: 0
Откуда: Новосибирск

Найти окружности в которые входит указанная точка

Сообщение Andy124321 » 06 фев 2020, 17:42

Требуется организовать хранение окружностей (долгота, широта, радиус в метрах) и в дальнейшем делать проверку, входит ли точка в окружность.
Попробовал вариант:
select * from test_geo where ST_DWithin(g,'POINT(82.92 55)', radius) limit 100
Выполняется со скоростью 2 запроса в секунду, в таблице примерно 800.000 записей.
Колонки:
g типа geography, для нее создан индекс USING gist(g)
radius типа integer, для нее создан обычный индекс.
Можно ли как-нибудь сократить время выполнения запроса?

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Найти окружности в которые входит указанная точка

Сообщение trir » 06 фев 2020, 18:07

используй квадратно-гнездовой способ - храни mbr (можно просто диагональную линию) и построй по ним индекс, а дальше уже уточняй

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей