Answers:
您可以使用以下命令测试自相交的线串ST_IsSimple(geom)
:
SELECT ST_IsSimple('LINESTRING (50 50, 150 150, 50 150, 150 50)');
st_issimple
-------------
f
(1 row)
图片上方和标题下方均来自JTS TestBuilder(单击“简单吗?”)
自相交处
POINT ( 100.0 100.0 )
可以使用ST_UnaryUnion(geom)
(自PostGIS 2.0起)修复此问题,该函数将返回有效/简单的三段式多行字符串:
MULTILINESTRING((50 50, 100 100),
(100 100, 150 150, 50 150, 100 100),
(100 100, 150 50))