ST_Geometry
定義
ST_Geometry は、WKT 表現からジオメトリを構築します。
ArcGIS で使用する空間テーブルを作成する場合は、ST_LineString などの ST_Geometry サブタイプを指定するよりも、ジオメトリ スーパータイプ(たとえば、ST_Geometry)として列を作成することをお勧めします。
構文
Oracle
- ラインストリング、ポリゴン、およびポイント
sde.st_geometry (wkt clob, srid integer)
- 最適化ポイント(これは extproc エージェントを起動しないため、より高速にクエリを処理します)
sde.st_geometry (x, y, z, m, srid)
多数のポイント データをバッチで挿入する場合は、最適化ポイントの作図を使用します。
- パラメータ対応の円
sde.st_geometry (x, y, z, m, radius, number_of_points, srid)
- パラメータ対応の楕円
sde.st_geometry (x, y, z, m, semi_major_axis, semi_minor_axis, angle, number_of_points, srid)
- パラメータ対応の扇形
sde.st_geometry (x, y, z, m, startangle, endangle, outerradius, innerradius, number_of_points, srid)
PostgreSQL
- ラインストリング、ポリゴン、およびポイント
sde.st_geometry (wkt, srid integer) sde.st_geometry (esri_shape bytea, srid integer)
- パラメータ対応の円
sde.st_geometry (x, y, z, m, radius, number_of_points, srid)
- パラメータ対応の楕円
sde.st_geometry (x, y, z, m, semi_major_axis, semi_minor_axis, angle, number_of_points, srid)
- パラメータ対応の扇形
sde.st_geometry (x, y, z, m, startangle, endangle, outerradius, innerradius, number_of_points, srid)
SQLite
- ラインストリング、ポリゴン、およびポイント
st_geometry (text WKT_string,int32 srid)
- パラメータ対応の円
st_geometry (x, y, z, m, radius, number_of_points, srid)
- パラメータ対応の楕円
st_geometry (x, y, z, m, semi_major_axis, semi_minor_axis, angle_of_rotation, number_of_points, srid)
- パラメータ対応の扇形
st_geometry (x, y, z, m, start_angle, end_angle, outer_radius, inner_radius, number_of_points, srid)
戻り値のタイプ
Oracle および PostgreSQL
ST_Geometry
SQLite
Geometryblob
例
ポイント、ラインストリング、およびポリゴン フィーチャの作成と検索
この例では、テーブル(geoms)を作成し、ポイント、ラインストリング、およびポリゴンの値を挿入しています。
Oracle
CREATE TABLE geoms (
id integer,
geometry sde.st_geometry
);
INSERT INTO GEOMS (id, geometry) VALUES (
1901,
sde.st_geometry ('point (1 2)', 4326)
);
--To insert the same point using optimized point construction:
INSERT INTO GEOMS (id, geometry) VALUES (
1901,
sde.st_geometry (1,2,null,null,4326)
);
INSERT INTO GEOMS (id, geometry) VALUES (
1902,
sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 4326)
);
INSERT INTO GEOMS (id, geometry) VALUES (
1903,
sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 4326)
);
PostgreSQL
CREATE TABLE geoms (
id serial,
geometry sde.st_geometry
);
INSERT INTO geoms (geometry) VALUES (
sde.st_geometry ('point (1 2)', 4326)
);
INSERT INTO geoms (geometry) VALUES (
sde.st_geometry ('linestring (33 2, 34 3, 35 6)', 4326)
);
INSERT INTO geoms (geometry) VALUES (
sde.st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 4326)
);
SQLite
CREATE TABLE geoms (
id integer primary key autoincrement not null
);
SELECT AddGeometryColumn (
NULL,
'geoms',
'geometry',
4326,
'geometry',
'xy',
'null'
);
INSERT INTO geoms (geometry) VALUES (
st_geometry ('point (1 2)', 4326)
);
INSERT INTO geoms (geometry) VALUES (
st_geometry ('linestring (33 2, 34 3, 35 6)', 4326)
);
INSERT INTO geoms (geometry) VALUES (
st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 4326)
);
パラメータ対応の円の作成と検索
radii という名前のテーブルを作成し、円を挿入します。
Oracle
CREATE TABLE radii (
id integer,
geometry sde.st_geometry
);
INSERT INTO RADII (id, geometry) VALUES (
1904,
sde.st_geometry (10,10,NULL,NULL,25,50,4326)
);
INSERT INTO RADII (id, geometry) VALUES (
1905,
sde.st_geometry (5,15,NULL,NULL,10,20,4326)
);
PostgreSQL
CREATE TABLE radii (
id serial,
geometry sde.st_geometry
);
INSERT INTO radii (geometry) VALUES (
sde.st_geometry (10,10,NULL,NULL,25,50,4326)
);
INSERT INTO radii (geometry) VALUES (
sde.st_geometry (5,15,NULL,20,10,30,4326)
);
SQLite
CREATE TABLE radii (
id integer primary key autoincrement not null
);
SELECT AddGeometryColumn (
NULL,
'radii',
'geometry',
4326,
'geometry',
'xy',
'null'
);
INSERT INTO radii (geometry) VALUES (
st_geometry (10,10,NULL,NULL,25,50,4326)
);
INSERT INTO radii (geometry) VALUES (
st_geometry (5,15,NULL,20,10,30,4326)
);
パラメータ対応の楕円の作成と検索
track という名前のテーブルを作成し、楕円を挿入します。
Oracle
CREATE TABLE track (
id integer,
geometry sde.st_geometry
);
INSERT INTO TRACK (id, geometry) VALUES (
1907,
sde.st_geometry (0,0,NULL,NULL,10,5,0,50,4326)
);
INSERT INTO TRACK (id, geometry) VALUES (
1908,
sde.st_geometry (4,19,10,20,10,5,0,40,4326)
);
PostgreSQL
CREATE TABLE track (
id serial,
geometry sde.st_geometry
);
INSERT INTO track (geometry) VALUES (
sde.st_geometry (0,0,NULL,NULL,10,5,0,50,4326)
);
INSERT INTO track (geometry) VALUES (
sde.st_geometry (4,19,10,20,10,5,0,40,4326)
);
SQLite
CREATE TABLE track (
id integer primary key autoincrement not null
);
SELECT AddGeometryColumn (
NULL,
'track',
'geometry',
4326,
'geometry',
'xy',
'null'
);
INSERT INTO track (geometry) VALUES (
st_geometry (0,0,NULL,NULL,10,5,0,50,4326)
);
INSERT INTO track (geometry) VALUES (
st_geometry (4,19,10,20,10,5,0,40,4326)
);
パラメータ対応の扇形の作成と検索
pwedge という名前のテーブルを作成し、扇形を挿入します。
Oracle
CREATE TABLE pwedge (
id integer,
label varchar2(8),
shape sde.st_geometry
);
INSERT INTO PWEDGE (uid, label, shape) VALUES (
1,
'Wedge1',
sde.st_geometry (10,30,NULL,NULL,45,145,5,2,60,4326)
);
PostgreSQL
CREATE TABLE pwedge (
id serial,
label varchar(8),
shape sde.st_geometry
);
INSERT INTO pwedge (label, shape) VALUES (
'Wedge',
sde.st_geometry(10,30,NULL,NULL,45,145,5,2,60,4326)
);
SQLite
CREATE TABLE pwedge (
id integer primary key autoincrement not null,
label varchar(8)
);
SELECT AddGeometryColumn (
NULL,
'pwedge',
'shape',
4326,
'geometry',
'xy',
'null'
);
INSERT INTO pwedge (label, shape) VALUES (
'Wedge',
st_geometry(10,30,NULL,NULL,45,145,5,2,60,4326)
);
関連トピック
5/25/2014