【问题标题】:buffer a lon,lat point in meters (approx)缓冲一个以米为单位的 lon,lat 点(大约)
【发布时间】:2011-08-23 15:00:41
【问题描述】:

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

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

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

doc "计算以该几何的空间参考系统为单位"

【问题讨论】:

  • 我也知道这可能会产生一个轻微的椭圆形,但我只需要一个近似的形状,所以我不太担心。

标签: postgresql postgis


【解决方案1】:

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

【讨论】:

  • 我如何以米为单位缩放几何?
【解决方案2】:

【讨论】:

  • 这个不错!也非常适用于类似的问题。
【解决方案3】:

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

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

其中位置是点几何体。

【讨论】:

  • 这在缓冲线串时也适用于我,因为我选择了粗略的纬度中点来使用。
  • 当心这是一个近似值,它会使一个更深的椭球向北移动!我真的推荐其他解决方案之一,因为我也走上了这条路并犯了一些可怕的错误!
猜你喜欢
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多