为ST_Buffer使用负半径缓冲区?

时间:2016-06-15 08:55:45

标签: postgis

我正在使用postgis 2.2。

我正在使用ST_Buffer到我的多边形,它正在为半径(以米为单位)工作,但是当我要应用负半径时,它显示空值。

这是我的问题:

SELECT    
  ST_AsGeoJSON(
      ST_Buffer(
          ST_GeomFromText(
               'POLYGON((72.89994120597838 19.070245311788284,
                         72.89981782436371 19.069915760688904,
                         72.9002845287323 19.070001951039718,
                         72.900338172912619.070341641985888,
                         72.89991974830626 19.07023517176424,
                         72.89994120597838 19.070245311788284)
               )', 4326)
       ,-3.024)
  ) as geometry;

结果是:

      geometry
-------------------------------------
 {"type":"Polygon","coordinates":[]}
(1 row)

如何将负缓冲区(-10米)应用于多边形(以米为单位)?

1 个答案:

答案 0 :(得分:0)

你得到的是空值,因为你的缓冲区参数太高,如(来自postgis docs)"计算在这个几何的空间参照系中"。

您可以使用此功能 geography ST_Buffer(geography g1, float radius_of_buffer_in_meters);ST_GeomFromText(WKT, SRID)替换为ST_GeogFromText(WKT)