我正在寻找一个函数,它将返回两个或更多多边形(地理类型)的交集。
我知道STúu UNION,STúu COLLECT,但它仅适用于几何类型。
任何小费都将不胜感激
最佳答案
你可以投射到几何体并在那里执行操作。当在笛卡尔平面上求值时,你只需要小心你的形状是有意义的。他们把日期线还是杆子包起来?
select geography(st_union(a::geometry, b::geometry))
如果形状有很长的边,那么你想要在球体上的大圆插值和你在平面上得到的线性插值之间的边插值的差异就会发挥作用,你必须通过在适当的地图投影(自动选择bestsrid函数)。
select geography(
st_transform(
st_union(
st_transform(a::geometry, _st_bestsrid(a,b)),
st_transform(b::geometry, _st_bestsrid(a,b))
),
4326
))
享受吧!
关于postgresql - 多边形的并集(ST_UNION用于“地理”类型),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3388524/