`LINESTRING` ジオメトリが閉じていて単純であるか、つまり有効なリングを形成するかどうかをテストします。
ST_IsRing は、次の両方の条件が満たされた場合に true を返します。
ST_IsClosed: `LINESTRING` の始点と終点が同一である (`
ST_StartPoint(g) = ST_EndPoint(g)`)ST_IsSimple: `LINESTRING` が自己交差しない
どちらかの条件が満たされない場合、ST_IsRing は false を返します。
構文
boolean ST_IsRing(geometry g);パラメーター
| パラメーター | 説明 |
|---|---|
g | 指定するジオメトリオブジェクト。 |
例
次の例では、2 つの `LINESTRING` ジオメトリをテストし、ST_IsClosed と ST_IsSimple が ST_IsRing の結果をどのように決定するかを示します。
閉じている単純な LINESTRING — true を返す
ジオメトリ LINESTRING(0 0,0 2,2 0,0 0) は三角形を形成します。始点 (0,0) は終点 (0,0) と等しく、ラインは自己交差しません。
SELECT ST_IsRing(geom), ST_IsClosed(geom), ST_IsSimple(geom)
FROM (SELECT 'LINESTRING(0 0,0 2,2 0,0 0)'::geometry AS geom) AS test; st_isring | st_isclosed | st_issimple
-----------+-------------+-------------
t | t | t
(1 row)閉じているが自己交差する LINESTRING — false を返す
ジオメトリ LINESTRING(0 0,0 2,0 0) は閉じていますが (始点と終点が同じ)、それ自体に沿って後戻りするため、単純ではありません。ST_IsRing は ST_IsSimple が失敗するため、false を返します。
SELECT ST_IsRing(geom), ST_IsClosed(geom), ST_IsSimple(geom)
FROM (SELECT 'LINESTRING(0 0,0 2,0 0)'::geometry AS geom) AS test; st_isring | st_isclosed | st_issimple
-----------+-------------+-------------
f | t | f
(1 row)