ST_IsSimpleDetail — Report locations of self-intersection or self-tangency, if any.
simple_detail ST_IsSimpleDetail(geometry geom, integer findAllLocations = 0, integer boundaryNodeRule = 1);
Returns a simple_detail row, containing a boolean (simple) stating if a geometry is simple and a geometry (location) pointing out where it is non-simple.
The optional findAllLocations parameter can be set to 1 to report all non-simple locations, rather than just one.
The optional boundaryNodeRule values are:
1 : OGC-Mod2 - les extrémités des lignes sont dans la frontière si elles apparaissent un nombre impair de fois. C'est la règle définie par la norme SFS de l'OGC, et c'est la valeur par défaut de la ST_Relate.
2 : Endpoint - tous les points d'extrémité sont dans la frontière.
3 : MultivalentEndpoint - les points d'extrémité sont dans la frontière s'ils apparaissent plus d'une fois. En d'autres termes, la frontière est constituée de tous les points d'extrémité "attachés" ou "internes" (mais pas des points d'extrémité "non attachés/externes").
4 : MonovalentEndpoint - les points d'extrémité sont dans la frontière s'ils n'apparaissent qu'une seule fois. En d'autres termes, la frontière est constituée de tous les points d'extrémité "non attachés" ou "extérieurs".
Availability: 3.7.0
SELECT ST_IsSimple('POLYGON((1 2,3 4,5 6,1 2))');
f
SELECT ST_IsSimple('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 1)');
f