我的目标是在 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] 删除。
我来说两句