ST_InteriorRingN

定義

ST_InteriorRingN は、ポリゴンの n 番目の内部リングを ST_LineString として返します。

リングの順序は事前に定義できません。リングは、幾何学的な向きではなく、内部のジオメトリ検証ルーチンによって定義された規則に従って編成されるためです。インデックスがポリゴンが持つ内部リングの数を超えた場合、NULL 値が返されます。

構文

Oracle

sde.st_interiorringn (polygon1 sde.st_polygon, INDEX integer)

PostgreSQL

sde.st_interiorringn (polygon1 sde.st_polygon, ring_number integer)

SQLite

st_interiorringn (polygon1 sde.st_polygon, ring_number int32)

戻り値のタイプ

ST_LineString

sample_polys テーブルを作成し、レコードを追加します。次に、内部リングの ID とジオメトリを選択します。

Oracle

CREATE TABLE sample_polys (
 id integer,
 geometry sde.st_geometry
);

INSERT INTO sample_polys VALUES (
 1,
 sde.st_polygon ('polygon ((40 120, 90 120, 90 150, 40 150, 40 120), (50 130, 60 130, 60 140, 50 140, 50 130), 
(70 130, 80 130, 80 140, 70 140, 70 130))', 4326)
);
SELECT id, sde.st_astext (sde.st_interiorringn (geometry, 2)) Interior_Ring
 FROM SAMPLE_POLYS; 

ID INTERIOR_RING 

1  LINESTRING (70.00000000 130.00000000, 70.00000000 140.00000000, 80.00000000 140.00000000, 80.00000000 130.00000000, 70.00000000 130.00000000)

PostgreSQL

CREATE TABLE sample_polys (
 id serial,
 geometry sde.st_geometry
);

INSERT INTO sample_polys (geometry) VALUES (
 sde.st_polygon ('polygon ((40 120, 90 120, 90 150, 40 150, 40 120), (50 130, 60 130, 60 140, 50 140, 50 130), 
(70 130, 80 130, 80 140, 70 140, 70 130))', 4326)
);
SELECT id, sde.st_astext (st_interiorringn (geometry, 2)) 
 AS Interior_Ring
 FROM sample_polys; 

id interior_ring

1  LINESTRING (70 130, 70 140, 80 140, 80 130, 70 130)

SQLite

CREATE TABLE sample_polys (
 id integer primary key autoincrement not null
);

SELECT AddGeometryColumn (
 NULL,
 'sample_polys',
 'geometry',
 4326,
 'polygon',
 'xy',
 'null'
);

INSERT INTO sample_polys (geometry) VALUES (
 st_polygon ('polygon ((40 120, 90 120, 90 150, 40 150, 40 120), (50 130, 60 130, 60 140, 50 140, 50 130), 
(70 130, 80 130, 80 140, 70 140, 70 130))', 4326)
);
SELECT id, st_astext (st_interiorringn (geometry, 2)) 
 AS "Interior_Ring"
 FROM sample_polys; 

id Interior_Ring

1  LINESTRING (70.00000000 130.00000000, 70.00000000 140.00000000, 80.00000000 140.00000000, 80.00000000 130.00000000, 70.00000000 130.00000000)

関連トピック

5/25/2014