Попытка выяснить, как обрезать вектор с другим вектором (прямоугольник), используя postgis - PullRequest
0 голосов
/ 09 марта 2020

Технологии: PostGIS, QGIS

У меня есть векторное поле с именем «study_area» и еще одна векторная информация «пойма». Теперь мне нужно обрезать векторные данные поймы, чтобы получить слой поймы, который находится внутри области исследования. Мне нужно использовать postgis для написания запросов для этого задания c.

Однако я проверил do c, похоже, функция st_clip работает только для растров.

Вот моя попытка:

select r.geom as clipped
from study_area as s, usrname."Regulatory_Floodplain" as r
where st_within(r.geom, s.geom) or st_intersects(s.geom, r.geom)

Проблема в том, что она не полностью в коробке:

enter image description here

Есть ли альтернативы? Любая помощь будет оценена, спасибо!

1 Ответ

2 голосов
/ 09 марта 2020

Вы, вероятно, хотите функцию ST_Intersection, что-то вроде

select st_intersection(r.geom, s.geom) as clipped
from study_area as s, usrname."Regulatory_Floodplain" as r
where st_intersects(s.geom, r.geom)
...