powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Показ на карте большого числа объектов
8 сообщений из 8, страница 1 из 1
Показ на карте большого числа объектов
    #40105118
Serge N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Есть база данных postgresql с таблицей у которой есть колонки широта и долгота
Код: plsql
1.
2.
    latitude numeric(9,7),
    longitude numeric(10,7),



Нужно показывать на карте яндекс эти записи.
Для небольшого участка работает нормально.
Но если вывести большой регион, то записей десятки тысяч и все начинает тормозить и запросы умирают по таймауту.

Получается, что как-то нужно группировать записи и на большом удалении показывать кружочки с числом записей в этом районе.
А при приближении карты уже выдавать детально информацию по каждой записи.
На многих сайтах я видел такое, но как это реализуется на SQL?
SQL должен группировать точки рядом и считать их количество. Подскажите пожалуйста, как это реализуется?
...
Рейтинг: 0 / 0
Показ на карте большого числа объектов
    #40105129
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge N,

для Postgres надо установить расширение Postgis
В нём реализован пространственный индекс R3
...
Рейтинг: 0 / 0
Показ на карте большого числа объектов
    #40105132
Serge N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_avz
Serge N,

для Postgres надо установить расширение Postgis
В нём реализован пространственный индекс R3


postgis у меня уже установлен, индекс R3 насколько я понимаю позволяет делать запросы с геометрическими условиями - например выбрать точки рядом с заданной. Но как сделать запрос, который бы группировал и считал точки лежащие рядом для целого города например как на картах авито?
...
Рейтинг: 0 / 0
Показ на карте большого числа объектов
    #40105135
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge N,

"рядом" - значит не дальше чем на каком-то расстоянии. Используй ST_Distance_Sphere()
Или рядом - значит в пределах какой-то области - тогда st_intersects(), для точек достаточно st_within()
или для точки делается st_buffer() и проверяется пересечение с ним
...
Рейтинг: 0 / 0
Показ на карте большого числа объектов
    #40105140
Serge N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_avz
Serge N,

"рядом" - значит не дальше чем на каком-то расстоянии. Используй ST_Distance_Sphere()
Или рядом - значит в пределах какой-то области - тогда st_intersects(), для точек достаточно st_within()
или для точки делается st_buffer() и проверяется пересечение с ним


В том то и дело, что нужно не в пределах области. Для прямоугольника можно и без postgis просто задавать latinude/longitude between V1 and V2.
Нужно сгруппировать по сетке и для каждого узла выдать количество. Как это делается?
...
Рейтинг: 0 / 0
Показ на карте большого числа объектов
    #40105141
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типа, кластеризация?
...
Рейтинг: 0 / 0
Показ на карте большого числа объектов
    #40105147
Serge N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_avz
Типа, кластеризация?


наверное. как на картах авито - прикладываю скриншот - несколько домов рядом объеденены в одну точку и в ней число объявлений - 5 штук. а уже если приблизить, то каждое объявление выдается отдельно.
...
Рейтинг: 0 / 0
Показ на карте большого числа объектов
    #40105154
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам я таким не занимался, но рискну предположить, что может подойти это:
Clustering_Functions

ST_ClusterDBSCAN — Window function that returns a cluster id for each input geometry using the DBSCAN algorithm.
ST_ClusterIntersecting — Aggregate function that clusters the input geometries into connected sets.
ST_ClusterKMeans — Window function that returns a cluster id for each input geometry using the K-means algorithm.
ST_ClusterWithin — Aggregate function that clusters the input geometries by separation distance.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Показ на карте большого числа объектов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]