SQL による空間参照の作成
Esri は、フィーチャクラスの作成時に ArcGIS for Desktop ツールを使用して空間参照を作成することを推奨しています。ArcGIS にはこの作業のためのツール セットが用意されており、X、Y、Z、M 単位とオフセットが自動的に計算されて、精度の高いデータを維持できます。一方で、Esri では、空間参照の作成時に別の選択肢を望むユーザとアプリケーション開発者の存在も理解しています。このトピックでは、空間参照を作成するための SQL の使用例について説明します。
空間参照系はジオメトリの構築の過程でジオメトリに割り当てられます。割り当てる空間参照系は空間参照テーブルに存在している必要があります。列内のすべてのジオメトリの空間参照系が同じでなければなりません。
IBM DB2 における空間参照の作成
DB2 の場合、空間参照を作成するコマンドは db2se create_srs です(または、db2se.ST_create_srs ストアド プロシージャを呼び出します)。以下の例では、スケール ファクタが 10 の空間参照レコードを特定の座標系を使用して作成します。
db2se create_srs mydb -srsName \"mysrs\"
-srsID 310000 -xScale 10 -coordsysName \"GCS_North_American_1983\"
このコマンドの使用法の詳細については、『DB2 Spatial Extender and Geodetic Extender User's Guide and Reference』の「Creating a spatial reference system」をご参照ください。
IBM Informix における空間参照の作成
Informix ユーザは、この例のような INSERT ステートメントを使用して、spatial_references テーブルに空間参照レコードを作成できます。SRID は一意の値に置き換えてください。
INSERT INTO sde.spatial_references (srid, description,
auth_name, auth_srid, falsex, falsey, xyunits, falsez,
zunits, falsem, munits, srtext, object_flags,
xycluster_tol, zcluster_tol, mcluster_tol)
VALUES (
310000,
'GCS_North_American_1983',
NULL,
NULL,
-400,
-400,
1000000000,
-100000,
100000,
-100000,
10000,
'GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]',
1,
0,
0,
0
);
Informix で空間参照を作成する方法については、『IBM Informix Spatial DataBlade Module User's Guide』の「Using the spatial references table」をご参照ください。
Oracle における空間参照の作成
Oracle で空間タイプを使用してテーブルの空間参照を作成するには、以下のような INSERT ステートメントを使用します。SRID は一意の値に置き換えてください。
INSERT INTO SDE.ST_SPATIAL_REFERENCES (SR_NAME, SRID,
X_OFFSET, Y_OFFSET, XYUNITS, Z_OFFSET, Z_SCALE, M_OFFSET,
M_SCALE, MIN_X, MAX_X, MIN_Y, MAX_Y, MIN_Z, MAX_Z, MIN_M,
MAX_M, CS_ID, CS_NAME, CS_TYPE, ORGANIZATION,
ORG_COORDSYS_ID, DEFINITION, DESCRIPTION)
VALUES (
'GCS_North_American_1983',
310000,
-400,
-400,
1000000000,
-100000,
100000,
-100000,
100000,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
4269,
'GCS_North_American_1983',
'PROJECTED',
NULL,
NULL,
'GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]',
'ArcSDE SpRef'
);
PostgreSQL における空間参照の作成
PostgreSQL で空間タイプの空間参照系を作成するには、以下のような INSERT ステートメントを使用します。SRID は一意の値に置き換えてください。
INSERT INTO sde.st_spatial_references (sr_name, srid,
x_offset, y_offset, xyunits, z_offset, z_scale, m_offset,
m_scale, min_x, max_x, min_y, max_y, min_z, max_z, min_m,
max_m, cs_id, cs_name, cs_type, organization,
org_coordsys_id, definition, description)
VALUES (
'GCS_North_American_1983',
310000,
-400,
-400,
1000000000,
-100000,
100000,
-100000,
100000,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
9.999E35,
-9.999E35,
4269,
'GCS_North_American_1983',
'PROJECTED',
NULL,
NULL,
'GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]',
'ArcSDE SpRef'
);
SQLite における空間参照の作成
次の例のような INSERT ステートメントを使用して、ST_Geometry を使用する SQLite データベースの st_aux_spatial_reference_systems テーブルに空間参照を追加します。SRID は一意の値に置き換えてください。
INSERT INTO st_aux_spatial_reference_systems (srid, auth_name, auth_srid,
sr_text, falsex, falsey, xyunits, falsez, zunits, falsem,
munits, xycluster_tol, zcluster_tol, mcluster_tol)
VALUES (
310000,
NULL,
4269,
'GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]',
-400,
-400,
1000000000,
-100000,
1.0,
-100000,
1.0,
0,
0,
0
);