Size: a a a

2021 June 07

C

Che in PostGIS
источник

C

Che in PostGIS
Очень странно, у меня есть объекты из таблицы а и таблицы б делаю примерно такой запрос:
With objects_a as (
Select geom
From table_a
Where geom && st_makebox2d(…)
), objects_b (
Select id, geom
From table_b
Where geom && st_makebox2d(…)
)
А дальше фото
источник

C

Che in PostGIS
Причём если в запросе из таблицы б убрать условие пересечения с bbox все работает и в результате st_union, возвращается объединённый полигон кластера, а при наличии возвращается коллекция и валится ошибка
источник

C

Che in PostGIS
Может ли как то на геометрию и на результат st_clusterintersecting влиять условие objects_b.geom && st_makebox2d?
источник

DP

Darafei Praliaskousk... in PostGIS
обновите geos до 3.9
источник

C

Che in PostGIS
А ее из исходников собирать, что то не могу найти в репозиториях
источник
2021 June 08

C

Che in PostGIS
Разобрался, это происходит скорее всего из-за кеширования bbox геометрии, соответственно нужно удалять bbox из кеша, что наверно не очень правильно. Пошёл другим путём обвожу геометрию convexhull и потом уже с ней пересекаю и все получилось. С новой версией postgis все значительно веселее.
источник

C

Che in PostGIS
У меня вопрос, знает кто нибудь быстрый способ выбрать строки из таблицы геометрия которых пересекается с геометрией строк другой таблицы. Естественно я не имею ввиду inner join, потому что мне не нужны пары объектов, нужны объекты одной из таблиц. Ну и группировка то же не катит, потому что объекты нужны с геометрией
источник

AB

Anton [az09@osm] Bel... in PostGIS
непонятно говоришь. именно что join и нужен, не?
источник

А

Александр in PostGIS
Ключевое пересекает, true/false https://postgis.net/docs/ST_Intersects.html
источник

SL

Svetlana L in PostGIS
Select a.* from a, b
Where st_intersects(a.geom, b.geom)
???
источник

SL

Svetlana L in PostGIS
Может, не так поняла. Выберет без дублей
источник

А

Александр in PostGIS
Пробуйте 🤓
источник

C

Che in PostGIS
Ребят, это все понятно. Но нужен результат типа такого select * from a where exists (select * from b where st_intersects)
источник

C

Che in PostGIS
Я же писал что join не нужен. В этом запросе вернутся пары a и b. Нужно тольк a, которые пересекаются хотя бы с одним объектом
источник

C

Che in PostGIS
А это долго
источник

DP

Darafei Praliaskousk... in PostGIS
но вот же ты написал как
источник

C

Che in PostGIS
Так долго, может кто знает быстрый способ?)
источник

DP

Darafei Praliaskousk... in PostGIS
а как выглядит план?
источник

C

Che in PostGIS
Ужасно))) там большой запрос, что бы а и бы выбрать, но вообще так и должно быть долго. Конечная цель получить геометрии а, которые попадают в буфер вокруг b
источник