【问题标题】:Convert a single point to a polygon将单个点转换为多边形
【发布时间】:2018-08-19 04:44:50
【问题描述】:

我想将我只知道经度和纬度的单个点转换为可以在 Google 地图上显示的多边形。 它要求在给定点周围只有 30 米。

我正在使用 Postgis,我尝试创建这样的多边形:

select ST_Transform(ST_Expand(ST_Transform(geo::geometry, _ST_BestSRID(geo)), 1, 1), 4326) 

from

ST_Centroid(ST_SetSRID(ST_MakePoint(?, ?), 4326)) as geo

我正在使用 Ruby,我正在用经度和纬度替换 ? 标志。

这给了我一个多边形,但它太大了。老实说,我不知道如何使它变小,所以它周围只有 30 米。

我将不胜感激。

【问题讨论】:

    标签: postgresql polygon postgis point


    【解决方案1】:

    您可以在地理上使用buffer 函数。它将自动使用适当的坐标系来近似缓冲区大小(以米为单位),输出将是一个圆形,而不是一个正方形:

    Select ST_Buffer(ST_SetSRID(ST_MakePoint(?, ?), 4326)::geography, 30);
    

    【讨论】:

      猜你喜欢
      • 2019-07-23
      • 1970-01-01
      • 2014-04-29
      • 2016-06-07
      • 1970-01-01
      • 2013-10-03
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多