Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
ジオメトリが有効な空間オブジェクトであるかどうかを調べます。
geometry-expression.ST_IsValid()
BIT ジオメトリ値が有効な場合は 1 を返し、それ以外の場合は 0 を返します。
デフォルトでは、空間データが他のフォーマットから作成またはインポートされた場合、サーバでデータの検証は行われません。ST_IsValid メソッドを使用して、インポートされたデータが有効なジオメトリを表すかどうかを検証できます。無効なジオメトリに対して操作を行うと、未定義の結果が返されます。
SQL/MM (ISO/IEC 13249-3: 2006) 5.1.9
次の例では、結果として 0 を返します。これは、多角形にリボン形が含まれている (リングがそれ自体と交差している) ためです。
0
SELECT ST_Geometry::ST_GeomFromText( 'Polygon(( 0 0, 4 0, 4 5, 0 -1, 0 0 ))' ) .ST_IsValid()
次の例では、結果として 0 を返します。これは、ジオメトリ内の多角形が面でそれ自体と交差しているためです。有限な数のポイントでのジオメトリコレクションのそれ自体との交差は有効であると見なされます。
SELECT ST_Geometry::ST_GeomFromText( 'MultiPolygon((( 0 0, 2 0, 1 2, 0 0 )),((0 2, 1 0, 2 2, 0 2)))' ) .ST_IsValid()