ST_Entity

注意注意:

Oracle および SQLite のみ

定義

ST_Entity は、ジオメトリ オブジェクトの空間エンティティ タイプを返します。空間エンティティ タイプは、ジオメトリ オブジェクトのエンティティ メンバー フィールドに格納された値です。

構文

Oracle

sde.st_entity (geometry1 sde.st_geometry)

SQLite

st_entity (geometry1 geometryblob)

戻り値のタイプ

次のエンティティ タイプを表す値(Oracle)または整数(SQLite)を返します。

0

nil シェープ

1

ポイント

2

ライン(スパゲッティ ラインを含む)

4

ラインストリング

8

エリア

257

マルチポイント

258

マルチライン(スパゲッティ ラインを含む)

260

マルチラインストリング

264

マルチエリア

次の例では、テーブルを作成し、3 種類のジオメトリを挿入しています。次に、ST_Entity が実行され、テーブル内の各レコードのジオメトリ サブタイプを返します。

Oracle

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

INSERT INTO sample_geos (id, geometry) VALUES (
 1901,
 sde.st_geometry ('point (1 2)', 4326)
);

INSERT INTO sample_geos (id, geometry) VALUES (
 1902,
 sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 4326)
);

INSERT INTO sample_geos (id, geometry) VALUES (
 1903,
 sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 4326)
);

SELECT sde.st_entity (geometry) entity, UPPER (sde.st_geometrytype (geometry)) TYPE
 FROM sample_geos;

    ENTITY        TYPE

    1    ST_POINT
    4    ST_LINESTRING
    8    ST_POLYGON

SQLite

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

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

INSERT INTO sample_geos (geometry) VALUES (
 st_geometry ('point (1 2)', 4326)
);

INSERT INTO sample_geos (geometry) VALUES (
 st_geometry ('linestring (33 2, 34 3, 35 6)', 4326)
);

INSERT INTO sample_geos (geometry) VALUES (
 st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 4326)
);

SELECT st_entity (geometry) AS "entity",
 st_geometrytype (geometry) AS "type"
 FROM sample_geos;

entity    type

1         ST_POINT
4         ST_LINESTRING
8         ST_POLYGON

関連トピック

5/25/2014