72 похожих чатов

Всем привет! Хочу сделать поиск по координатам. То есть на

вход принимает geometry(Polygon). В этом полигоне есть здания, у которых есть долгота и широта. Вопрос такой: Есть ли вариант сделать поиск не перебирая все здания и проверяя координаты на вхождение через ST_Contains?

6 ответов

11 просмотров

А какая у тебя СУБД?

Айдар- Автор вопроса

Ну и сразу замечания: все поиски по координатам обычно ищут по квадратному поэтому произвольного многоугольника тут использовать не получится тебе надо будет всё равно сгенерировать по твоему многоугольнику охватывающий его прямоугольник со сторонами параллельными осям координат Ну то есть параллелям и меридианам, найти что нужно в этом прямоугольнике а затем уже проверять Входит ли эти объекты внутрь твоего многоугольника, А это уже Придётся делать руками без индекса

Вопросы у вас... В некотором смысле — есть, в некотором смысле — нет. Но вас, скорее всего, беспокоит не сколько там зданий фактически переберутся, а скорость работы? Тогда начните с чтения про индэксы вашэго постгиса: https://postgis.net/docs/manual-3.4/using_postgis_dbmanagement.html#build-indexes Это... Непростой для начала материал, но несколько раз прочитать и понять все слова этого раздела всё-таки нужно. Потом можно будет а) Попробовать сгенерировать нормальный объём тэстовых данных и как интересующие вас выборки работают при помощи таких индэксов. б) Понять самому, как примерно работают эти индэксы и задуматься об алгоритмической сложности вашэй задачи, и возможности её решэния в том числе и помимо индэксов (какими-то схожыми, но более подходящими вам алгоритмами).

Ilya Zviagin
Ну и сразу замечания: все поиски по координатам об...

Тебе, кстати, тожэ можно прочитать https://postgis.net/docs/manual-3.4/using_postgis_dbmanagement.html#build-indexes Ну, и про крутые индэксы постгреса вводную пропаганду до кучи https://www.postgresql.org/docs/15/gist.html (и до конца разделов про индэксы).

Кстати, подумалось — тебе тожэ будет полезно прочитать вводные про разные нестандартные индэксы postgres https://www.postgresql.org/docs/15/gist.html (и до "Database Physical Storage", возможно, не включая). Возможно, начать дажэ с https://www.postgresql.org/docs/15/btree.html .

Похожие вопросы

Обсуждают сегодня

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
7
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Всем привет Подскажите, какой план выбирать на Heroku Если я хочу запускать scheduled jobs (queues) на своем сервере? Я так понимаю для queues запускаются на отдельных workers...
Egor Chernenko
1
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Что за японодичь? Мне хоть m68k, хоть 8080, 8088, на любом можно что-то создать
Егор
5
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Карта сайта