Name

ST_IsValid — Prüft, ob eine Geometrie in 2D wohlgeformt ist.

Synopsis

boolean ST_IsValid(geometry g);

boolean ST_IsValid(geometry g, integer flags);

Beschreibung

Prüft, ob ein ST_Geometry-Wert wohlgeformt und in 2D gemäß den OGC-Regeln gültig ist. Bei Geometrien mit 3 und 4 Dimensionen wird die Gültigkeit weiterhin nur in 2 Dimensionen geprüft. Für Geometrien, die ungültig sind, wird ein PostgreSQL-NOTICE ausgegeben, der die Gründe für die Ungültigkeit angibt.

Für die Version mit dem Parameter flags sind die unterstützten Werte in ST_IsValidDetail dokumentiert. Diese Version druckt keinen HINWEIS, der die Ungültigkeit erklärt.

Weitere Informationen über die Definition der Geometriegültigkeit finden Sie unter Section 4.4, “Geometrievalidierung”

[Note]

SQL-MM definiert das Ergebnis von ST_IsValid(NULL) als 0, während PostGIS NULL zurückgibt.

Wird vom GEOS Modul ausgeführt

Die Version, die Flaggen akzeptiert, ist ab 2.0.0 verfügbar.

Diese Methode implementiert die OGC Simple Features Implementation Specification for SQL 1.1.

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM 3: 5.1.9

[Note]

Weder die OGC-SFS- noch die SQL-MM-Spezifikationen enthalten ein Flag-Argument für ST_IsValid. Das Flag ist eine PostGIS-Erweiterung.

Beispiele

SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,
        ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As bad_poly
--results
NOTICE:  Self-intersection at or near point 0 0
 good_line | bad_poly
-----------+----------
 t         | f