我正在尝试开发一个GIS应用程序,其中我想限制创建的缓冲区的地理围栏。
是否有postgis函数来查找缓冲区的半径或地理围栏的边界?
答案 0 :(得分:1)
您可以使用ST_Envelope获取某个要素的边界框范围,即最小边界矩形(MBR)。
select ST_Astext(ST_Envelope(ST_Buffer(ST_Makepoint(0,0),10)));
返回一个不是圆的矩形
POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10))
然后,您可以使用最小和最大函数,ST_Xmax,ST_Xmin和Y等值来获得MBR的宽度和高度。
这是你问的吗?
答案 1 :(得分:1)
感谢John,
我错误地问了这个问题,我的实际要求是围栏不得越过允许的范围。我首先考虑限制围栏的半径,但可以使用st_contains来完成,因为它符合我的实际要求。
Select st_contains ((select the_geom from gis.city_border),(select the_geom from geofence))
解决。