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/

相关文章:

java - 在 Postgres 和 JSP 中存储和检索不同语言字符

c - 为什么我的 char * 返回不同的值?

postgresql - 为 postgis 过滤 openstreetmap 数据

python - django.core.exceptions.ImproperlyConfigured : Could not find the GDAL library

c# - 如何将 InsertCommand 参数设置为函数调用?

nhibernate - Fluent NHibernate 中的表和列命名

postgresql 查找相似词组

postgresql - 使一个值首先出现在下拉其他值之后

Java缓冲区和流: Releasing underlying resources

emacs - 检查当前 Emacs 缓冲区是否包含字符串