以米为单位缓冲一个lon,lat点(约)

时间:2011-08-23 15:00:41

标签: postgresql postgis

我需要围绕一个半径约为X米的点(lon,lat)创建一个圆圈。

该点是通过相当于geomFromEwkt('SRID=1;POINT(lon lat)')生成的。

我知道postgis的缓冲区或st_buffer函数,但我不确定如何将距离(米)转换为“此几何的空间参照系的单位”。

doc “计算以此几何的空间参考系统为单位”

3 个答案:

答案 0 :(得分:2)

椭圆形的形状会越来越明显。如果您使用的是PostGIS 1.5,请执行几何(ST_Buffer(GeogFromText('POINT(lon lat)'),100))在球形空间中进行缓冲并获得正确的答案,无论纬度如何。

答案 1 :(得分:2)

答案 2 :(得分:1)

一位同事向我介绍了他使用的近似计算:

buffer("location", radius / 110000 * abs(cos(radians(lat))));

其中location是点几何。