两个缓冲区的区别
Difference of two buffers
我想在一条线周围创建一个 100 米的缓冲区。但是我不想 select 第一个 20m 缓冲区。我试过这样的事情:
SELECT st_buffer(l.geom, 100) FROM line l
EXCEPT
SELECT st_buffer(l.geom, 20) FROM line l
但是在QGIS中查看后还是不行。我该如何解决?
EXCEPT
不会在这里做。这将 return 第一个查询中不在第二个查询中的任何行。它不会修改这些行的列。 st_buffer
is a single geometry 的结果是单行。
相反,您通过从较大的圆圈中雕刻出较小的圆圈来构建一个环面,一个甜甜圈。我相信(我手边没有 PostGIS)你可以通过制作两个缓冲区然后用 st_difference
.
从较大的缓冲区中减去较小的缓冲区来做到这一点
select
st_difference(
st_buffer(l.geom, 100),
st_buffer(l.geom, 20)
) as torus
from line l
我想在一条线周围创建一个 100 米的缓冲区。但是我不想 select 第一个 20m 缓冲区。我试过这样的事情:
SELECT st_buffer(l.geom, 100) FROM line l
EXCEPT
SELECT st_buffer(l.geom, 20) FROM line l
但是在QGIS中查看后还是不行。我该如何解决?
EXCEPT
不会在这里做。这将 return 第一个查询中不在第二个查询中的任何行。它不会修改这些行的列。 st_buffer
is a single geometry 的结果是单行。
相反,您通过从较大的圆圈中雕刻出较小的圆圈来构建一个环面,一个甜甜圈。我相信(我手边没有 PostGIS)你可以通过制作两个缓冲区然后用 st_difference
.
select
st_difference(
st_buffer(l.geom, 100),
st_buffer(l.geom, 20)
) as torus
from line l