在Postgresql中,为表中的所有点提供100m缓冲区,其中有50M个条目

我有一个表,有50米的纬度和经度条目,geom是我从QGIS导入时创建的。我试图通过调用jupyter笔记本中的表来为表中的所有点创建一个100m的缓冲区。我还尝试使用SRID:25832转换坐标系,以米为单位表示缓冲区,但在postgresql视图中看不到投影到正确位置的点。

SELECT * FROM public."operation"
ST_Buffer(geom, 100, 25832)
 发布于 2 年前
 
✅ 最佳回答:
avatar

如果几何图形是在lon/lat空间参考系统中编码的,您只需要将其转换为geography,并应用缓冲区函数。使用geography它使用的单位是米:

-- buffer of 100 metres
SELECT ST_Buffer(geom::geography,100) FROM public.operation;

或者如果你想使用EPSG:25832,你必须先转换它

SELECT ST_Buffer(ST_Transform(geom,25832),100) FROM public.operation;

Demo: db<>fiddle

posted @ 2023-10-21 15:19  疯子110  阅读(34)  评论(0编辑  收藏  举报