如何在 PostGIS 中将缓冲区大小从度数更改为以米为单位的距离?
How to change buffer size from degrees to distance by meters in PostGIS?
SELECT ST_Buffer(geom, 400)
FROM my_table;
此查询创建一个 400 度的缓冲区。我怎样才能将它更改为在点周围有 400m 的缓冲区?
我曾尝试使用 ST_Transform
和 ST_SetSRID
但出现错误。很可能是因为我的查询结构错误。
谢谢你的帮助。
ST_buffer
使用投影单位。您可以将 geometry
转换为 geography
以使用米,或依赖以米为单位的合适的本地投影。
SELECT ST_Buffer(geom::geography, 400)
FROM my_table;
如果还没有设置,可能要先设置原来的CRS
SELECT ST_Buffer(st_setSRID(geom,4326)::geography, 400)
FROM my_table;
SELECT ST_Buffer(geom, 400)
FROM my_table;
此查询创建一个 400 度的缓冲区。我怎样才能将它更改为在点周围有 400m 的缓冲区?
我曾尝试使用 ST_Transform
和 ST_SetSRID
但出现错误。很可能是因为我的查询结构错误。
谢谢你的帮助。
ST_buffer
使用投影单位。您可以将 geometry
转换为 geography
以使用米,或依赖以米为单位的合适的本地投影。
SELECT ST_Buffer(geom::geography, 400)
FROM my_table;
如果还没有设置,可能要先设置原来的CRS
SELECT ST_Buffer(st_setSRID(geom,4326)::geography, 400)
FROM my_table;