table 中所有点的缓冲区 100m,在 Postgresql 中有 50M 个条目

Buffer 100m for all the points in the table with 50M entries in Postgresql

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

SELECT * FROM public."operation"
ST_Buffer(geom, 100, 25832)

如果几何图形在 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;

演示:db<>fiddle