空間データの空間参照システム (SRS) は、地理的位置の調整ベースのシステムです。
空間参照システムには様々なタイプがあります:
-
投影 SRS は、地球を平面に投影したものです; すなわち、平面の地図です。 たとえば、地球の周囲の紙の円柱を照らす地球の内側の電球は、地図を紙に投影します。 結果は地理参照されます: 各ポイントは地球上の場所にマッピングされます。 その平面上の座標系は、経度と緯度ではなく長さの単位 (メートル、フィートなど) を使用したデカルト座標です。
この場合の地球はは楕円体、すなわち押しつぶされた球体です。 地球は、東西の軸よりも北西の軸が少し短いため、正確にはわずかに押しつぶされた球体ですが、完全な球体を使用すると計算速度は速くなります。
地理 SRS は、楕円体上の経度 - 緯度 (または緯度 - 経度) 座標を任意の角度単位で表す非投影 SRS です。
SRID 0 によって MySQL で示される SRS は、軸に単位が割り当てられていない無限の平らなデカルト平面を表します。 投影 SRS とは異なり、地理参照されず、必ずしも地球を表すわけではありません。 これは、任意の用途に使用できる抽象平面です。 SRID 0 は、MySQL の空間データのデフォルト SRID です。
MySQL では、空間データに使用可能な空間参照システムに関する情報がデータディクショナリの mysql.st_spatial_reference_systems
テーブルに保持されます。このテーブルには、投影 SR および地理 SRS のエントリを格納できます。 このデータディクショナリテーブルは非表示ですが、SRS エントリの内容は、mysql.st_spatial_reference_systems
上のビューとして実装された INFORMATION_SCHEMA
ST_SPATIAL_REFERENCE_SYSTEMS
テーブルを介して使用できます (セクション26.36「INFORMATION_SCHEMA ST_SPATIAL_REFERENCE_SYSTEMS テーブル」 を参照)。
SRS エントリの例を次に示します:
mysql> SELECT *
FROM INFORMATION_SCHEMA.ST_SPATIAL_REFERENCE_SYSTEMS
WHERE SRS_ID = 4326\G
*************************** 1. row ***************************
SRS_NAME: WGS 84
SRS_ID: 4326
ORGANIZATION: EPSG
ORGANIZATION_COORDSYS_ID: 4326
DEFINITION: GEOGCS["WGS 84",DATUM["World Geodetic System 1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
UNIT["degree",0.017453292519943278,
AUTHORITY["EPSG","9122"]],
AXIS["Lat",NORTH],AXIS["Long",EAST],
AUTHORITY["EPSG","4326"]]
DESCRIPTION:
このエントリでは、GPS システムに使用される SRS について説明します。 名前 (SRS_NAME
) は WGS 84 で、ID (SRS_ID
) は 4326 で、これは「欧州石油調査グループ」 (EPSG) で使用される ID です。
DEFINITION
カラムの SRS 定義は WKT 値であり、Open Geospatial Consortium 文書 OGC 12-063r5 で指定されています。
SRS_ID
値は、ジオメトリ値の SRID と同じ種類の値を表すか、SRID 引数として空間関数に渡されます。 SRID 0 (単位なしデカルト平面) は特殊です。 常に有効な空間参照システム ID であり、SRID 値に依存する空間データの計算に使用できます。
複数のジオメトリ値の計算では、すべての値が同じ SRID を持つ必要があり、そうでない場合はエラーが発生します。
SRS 定義解析は、GIS 関数で定義が必要な場合にオンデマンドで実行されます。 解析された定義は、再利用を可能にし、SRS 情報を必要とするすべてのステートメントの解析オーバーヘッドが発生しないように、データディクショナリキャッシュに格納されます。
データディクショナリに格納されている SRS エントリの操作を可能にするために、MySQL には次の SQL ステートメントが用意されています:
CREATE SPATIAL REFERENCE SYSTEM
: セクション13.1.19「CREATE SPATIAL REFERENCE SYSTEM ステートメント」 を参照してください。 このステートメントの説明には、SRS 構成部品に関する追加情報が含まれます。DROP SPATIAL REFERENCE SYSTEM
: セクション13.1.31「DROP SPATIAL REFERENCE SYSTEM ステートメント」 を参照してください。