名前

ST_IsClosed — LINESTRINGの始点と終点が一致する場合にTRUEを返します。多面体サーフェスの場合は閉じています(ボリュームです)。

概要

boolean ST_IsClosed(geometry g);

説明

LINESTRINGの始点と終点が一致する場合にTRUEを返します。多面体サーフェスの場合、サーフェスは面(開いている)かボリューム(閉じている)かを問い合わせます。

このメソッドはOpenGIS Simple Features Implementation Specification for SQL 1.1.の実装です

このメソッドはSQL/MM仕様の実装です。 SQL-MM 3: 7.1.5, 9.3.3

[注記]

SQL-MMではST_IsClosed(NULL)は0を返しますが、PostGISではNULLを返します。

この関数は3次元に対応しています。Zインデクスを削除しません。

このメソッドは曲線ストリングと曲線に対応しています

機能強化: 2.0.0で、多面体サーフェスが導入されました。

この関数は多面体サーフェスに対応しています。

ラインストリングとポイントの例

postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 1 1)'::geometry);
 st_isclosed
-------------
 f
(1 row)

postgis=# SELECT ST_IsClosed('LINESTRING(0 0, 0 1, 1 1, 0 0)'::geometry);
 st_isclosed
-------------
 t
(1 row)

postgis=# SELECT ST_IsClosed('MULTILINESTRING((0 0, 0 1, 1 1, 0 0),(0 0, 1 1))'::geometry);
 st_isclosed
-------------
 f
(1 row)

postgis=# SELECT ST_IsClosed('POINT(0 0)'::geometry);
 st_isclosed
-------------
 t
(1 row)

postgis=# SELECT ST_IsClosed('MULTIPOINT((0 0), (1 1))'::geometry);
 st_isclosed
-------------
 t
(1 row)

多面体サーフェスの例

		-- 立方体 --
		SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), 
		((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), 
		((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), 
		((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'));

 st_isclosed
-------------
 t


 -- 立方体と同じですが側面のひとつがありません --
 SELECT ST_IsClosed(ST_GeomFromEWKT('POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), 
		((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), 
		((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), 
		((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)) )'));

 st_isclosed
-------------
 f

追加情報

ST_IsRing