ST_IsSimple
定義
ST_IsSimple は、OGC(Open Geospatial Consortium)に定義されているように ジオメトリ オブジェクトがシンプルの場合は 1(Oracle および SQLite)または t(PostgreSQL)、それ以外の場合は 0(Oracle および SQLite)または f(PostgreSQL)を返します。
構文
Oracle および PostgreSQL
sde.st_issimple (geometry1 sde.st_geometry)
SQLite
st_issimple (geometry1 geometryblob)
戻り値のタイプ
Boolean
例
issimple_test テーブルは、2 つの列で作成されます。pid は smallint データ タイプで、各行の一意の識別子が含まれています。g1 列は、シンプルまたは非シンプルのジオメトリ サンプルを格納します。
INSERT ステートメントは、2 つのレコードを issimple_test テーブルに挿入します。最初のレコードは、内部で交わらないシンプルなラインストリングです。2 番目のレコードは、内部で交わる OGC による定義では非シンプルになります。
クエリは、ST_IsSimple 関数の結果を返します。最初のレコードは、ラインストリングがシンプルであるため 1 または t を返します。2 番目のレコードは、ラインストリングがシンプルでないため 0 または f を返します。
Oracle
CREATE TABLE issimple_test (
pid smallint,
g1 sde.st_geometry
);
INSERT INTO ISSIMPLE_TEST VALUES (
1,
sde.st_linefromtext ('linestring (10 10, 20 20, 30 30)', 4326)
);
INSERT INTO ISSIMPLE_TEST VALUES (
2,
sde.st_linefromtext ('linestring (10 10, 20 20, 20 30, 10 30, 10 20,
20 10)', 4326)
);
SELECT pid, sde.st_issimple (g1) Is_it_simple
FROM ISSIMPLE_TEST;
PID Is_it_simple
1 1
2 0
PostgreSQL
CREATE TABLE issimple_test (
pid smallint,
g1 sde.st_geometry
);
INSERT INTO issimple_test VALUES (
1,
sde.st_linestring ('linestring (10 10, 20 20, 30 30)', 4326)
);
INSERT INTO issimple_test VALUES (
2,
sde.st_linestring ('linestring (10 10, 20 20, 20 30, 10 30, 10 20, 20 10)', 4326)
);
SELECT pid, sde.st_issimple (g1)
AS Is_it_simple
FROM issimple_test;
pid is_it_simple
1 t
2 f
SQLite
CREATE TABLE issimple_test (
pid integer
);
SELECT AddGeometryColumn (
NULL,
'issimple_test',
'g1',
4326,
'linestring',
'xy',
'null'
);
INSERT INTO issimple_test VALUES (
1,
st_linestring ('linestring (10 10, 20 20, 30 30)', 4326)
);
INSERT INTO issimple_test VALUES (
2,
st_linestring ('linestring (10 10, 20 20, 20 30, 10 30, 10 20, 20 10)', 4326)
);
SELECT pid, st_issimple (g1)
AS Is_it_simple
FROM issimple_test;
PID Is_it_simple
1 1
2 0
関連トピック
5/25/2014