PostGIS ST_OffsetCurve在某些线路上失败



使用PostgreSQL和PostGIS时,我在对某些特定的线几何图形使用ST_OffsetCurve时出错:"lwgeom_offsetcurve:节点几何体不能偏移">

示例:

SELECT ST_OffsetCurve(ST_GeomFromText('LINESTRING(288249.918098328 5615135.51135102,288293.425429089 5615086.62800628,288231.885629119 5615155.77174104,288249.918098328 5615135.51135102)'), -5.6875)

这是一条闭合线,最后三点在一条直线上。PostGIS在Windows上的版本是3.0。

更改任何坐标,甚至只是稍微更改偏移值,都可以消除此错误。是否可以在不更改数值的情况下防止错误?

更新到PostGIS 3.1版解决了这个问题。

也许ST_MakeValid可以解决此问题https://postgis.net/docs/ST_MakeValid.html

在ST_GeomFromText 中,最好将srid作为第二个参数传递

SELECT ST_OffsetCurve(ST_MakeValid(ST_GeomFromText(...., your srid)), -5.6875)

最新更新