如何获取距 postGIS 中某个点一定距离处的边界框坐标?

西蒙尼

我的目标是在 postGIS 中围绕一个点定义一个给定半径的圆的边界框。

点,范围都可以,但是当我这样做时:

select ST_AsGeoJSON( st_extent( st_buffer( ST_SetSRID(ST_MakePoint(11.0120, 49.5897), 4326), 6000 ) ) );

我得到

{"type":"Polygon","coordinates":[[[-5988.988,-5950.4103],
                                  [-5988.988,6049.5897],
                                  [6011.012,6049.5897],
                                  [6011.012,-5950.4103],
                                  [-5988.988,-5950.4103]]]}

当我期待(

{"type":"Polygon","coordinates":[[[10.929017, 49.535753],
                                 [10.929017, 49.643646],
                                 [11.094983, 49.643646],
                                 [11.094983, 49.535753],
                                 [10.929017, 49.535753]]]}

(手工制作的 GeoJSON - 可能包含错误)

那么 - 如何让 postGIS SQL 输出地理坐标而不是几何图形?

鳄梨

如果几何被传递到ST_Buffer,那么第二个参数是度,而不是米。要使用米作为第二个参数,请将第一个参数转换为 geography。然后将其投射回几何体以与范围一起使用:

select
  ST_AsGeoJSON(
    st_extent(
      st_buffer(
        ST_SetSRID(
          ST_MakePoint(11.0120, 49.5897),
          4326
        )::geography,
        6000
      )::geometry
    )
  );

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章