postgresql - 如何在 PostGIS 中将缓冲区大小从度数更改为距离米?

标签 postgresql buffer postgis points

SELECT ST_Buffer(geom, 400)
FROM my_table;

此查询创建 400 度的缓冲区。我怎样才能将其更改为在点周围有 400m 缓冲区? 我尝试使用 ST_TransformST_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;

关于postgresql - 如何在 PostGIS 中将缓冲区大小从度数更改为距离米?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62514871/

相关文章:

在 PostgreSQL 中解析 EXPLAIN 命令的输出

postgresql - PostgreSQL 中最有效的数组表示法

java - 为什么 resultset.next() 返回 null

java - ArrayList<Short> 指向 ShortBuffer (java)

c++ - 如何使用 CSingleLock 提供对此缓冲区的访问权限?

postgresql - 从 ST_MinimumBoundingRadius 选择半径

sql - 如何使用地理坐标计算 SQL 中的面积?

node.js - 如何在不手动撤消 sequelize 迁移的情况下部署以前版本的 Node 服务器

c - 从c中的fread()形式读取缓冲区数据

postgresql - 如何使用 Homebrew 将 Postgis 安装到 Postgres@9.6 的 Keg 安装中?