代码之家  ›  专栏  ›  技术社区  ›  Rada Bogdan

将单个点转换为多边形

  •  0
  • Rada Bogdan  · 技术社区  · 6 年前

    我想把我只知道长度和纬度的一个点转换成一个可以在谷歌地图上显示的多边形。 要求在给定点周围只有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米。

    如果有任何帮助,我将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  1
  •   JGH    6 年前

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

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