Vlad K Asked: 2025-01-22 05:20:40 +0800 CST2025-01-22 05:20:40 +0800 CST 2025-01-22 05:20:40 +0800 CST 根据几何点创建 Postgis 多边形,并在多边形边界上添加 X 米 772 我需要使用 PostGIS 创建一个围绕给定点集的多边形。 此外,多边形应略微超出边界点指定的距离(理想情况下以米为单位),使最终的形状略大一些。 有人可以告知这是否可行以及如何使用 PostGIS 实现? postgresql 1 个回答 Voted Best Answer Zegarek 2025-01-22T05:49:07+08:002025-01-22T05:49:07+08:00 你可以将ST_Collect()你的几何图形传递给ST_ConvexHull()并围绕ST_Buffer()它进行演示: db<>fiddle 上的演示 select st_buffer(st_convexhull(st_collect(geom)),9) from your_table group by cluster_num; st_astext 多边形((200 191,191 200,191 300,200 309,300 309,309 300,309 200,300 191,200 191)) 多边形((6.363961030678928 -6.363961030678928,-3.444150891285813 -8.314915792601578,-9 0,-9 100,0 109,100 109,108.31491579260158 103.4441508912858,106.36396103067892 93.63603896932108,6.363961030678928 -6.363961030678928)) 请注意,缓冲区大小以 SRID 指定的列单位(如果是 )为单位9,如果是 ,则以米为单位。常用的单位是度,因此您应该将其转换为或基于米的本地坐标参考系统。 还有以英尺和海里为单位的 SRID,因此其长度会相应变化。geomgeometrygeographySRID:4326::geographyST_Transform()9 如果您还正在寻找一种方法来对它们进行聚类以决定哪些几何图形应该在一起,那么就有ST_ClusterWithinWin()。 有关的: 如何使用 PostGIS 从单个表中选择所有相交多边形组
你可以将
ST_Collect()
你的几何图形传递给ST_ConvexHull()
并围绕ST_Buffer()
它进行演示:db<>fiddle 上的演示
请注意,缓冲区大小以 SRID 指定的列单位(如果是 )为单位
9
,如果是 ,则以米为单位。常用的单位是度,因此您应该将其转换为或基于米的本地坐标参考系统。 还有以英尺和海里为单位的 SRID,因此其长度会相应变化。geom
geometry
geography
SRID:4326
::geography
ST_Transform()
9
如果您还正在寻找一种方法来对它们进行聚类以决定哪些几何图形应该在一起,那么就有
ST_ClusterWithinWin()
。有关的: