CREATE OR REPLACE SPATIAL REFERENCE SYSTEM
srid srs_attribute ...
CREATE SPATIAL REFERENCE SYSTEM
[IF NOT EXISTS]
srid srs_attribute ...
srs_attribute: {
NAME 'srs_name'
| DEFINITION 'definition'
| ORGANIZATION 'org_name' IDENTIFIED BY org_id
| DESCRIPTION 'description'
}
srid, org_id: 32-bit unsigned integer
このステートメントは、spatial reference system (SRS) 定義を作成し、データディクショナリに格納します。 SUPER
権限が必要です。 結果のデータディクショナリエントリは、INFORMATION_SCHEMA
ST_SPATIAL_REFERENCE_SYSTEMS
テーブルを使用して検査できます。
SRID 値は一意である必要があるため、OR REPLACE
も IF NOT EXISTS
も指定されていない場合、指定された srid
値を持つ SRS 定義がすでに存在するとエラーが発生します。
CREATE OR REPLACE
構文では、SRID 値が既存のテーブルのカラムで使用されていないかぎり、同じ SRID 値を持つ既存の SRS 定義が置換されます。 その場合、エラーが発生します。 例:
mysql> CREATE OR REPLACE SPATIAL REFERENCE SYSTEM 4326 ...;
ERROR 3716 (SR005): Can't modify SRID 4326. There is at
least one column depending on it.
SRID を使用するカラムを識別するには、次のクエリーを使用し、4326 を作成しようとしている定義の SRID に置き換えます:
SELECT * FROM INFORMATION_SCHEMA.ST_GEOMETRY_COLUMNS WHERE SRS_ID=4326;
CREATE ... IF NOT EXISTS
構文では、SRID 値が同じ既存の SRS 定義は無視され、警告が発生します。
SRID 値は 32 ビットの符号なし整数の範囲内である必要がありますが、次の制限があります:
SRID 0 は有効な SRID ですが、
CREATE SPATIAL REFERENCE SYSTEM
では使用できません。値が予約された SRID 範囲内にある場合は、警告が発生します。 予約済の範囲は、[0, 32767] (EPSG で予約済)、[60,000,000、69,999,999] (EPSG で予約済) および[2,000,000,000、2,147,483,647] (MySQL で予約済) です。 EPSG は「欧州石油調査グループ」を表します。
ユーザーは、予約された範囲内に SRID を持つ SRS を作成しないでください。 これにより、MySQL に配布された将来の SRS 定義と競合する SRID のリスクが実行され、その結果、新しいシステム提供の SRS が MySQL のアップグレード用にインストールされないか、ユーザー定義の SRS が上書きされます。
ステートメントの属性は、次の条件を満たす必要があります:
属性は任意の順序で指定できますが、複数回指定することはできません。
NAME
およびDEFINITION
属性は必須です。NAME
srs_name
属性値は一意である必要があります。ORGANIZATION
org_name
とorg_id
の属性値の組合せは一意である必要があります。NAME
srs_name
属性値およびORGANIZATION
org_name
属性値を空にしたり、先頭または末尾を空白にすることはできません。属性指定の文字列値に、改行を含む制御文字を含めることはできません。
-
次のテーブルに、文字列属性値の最大長を示します。
表 13.6 CREATE SPATIAL REFERENCE SYSTEM 属性長
属性 最大の長さ (文字) NAME
80 DEFINITION
4096 ORGANIZATION
256 DESCRIPTION
2048
CREATE SPATIAL REFERENCE SYSTEM
ステートメントの例を次に示します。 読みやすくするために、DEFINITION
値は複数の行にわたって再フォーマットされます。 (ステートメントを有効にするには、実際に値を単一行に指定する必要があります。)
CREATE SPATIAL REFERENCE SYSTEM 4120
NAME 'Greek'
ORGANIZATION 'EPSG' IDENTIFIED BY 4120
DEFINITION
'GEOGCS["Greek",DATUM["Greek",SPHEROID["Bessel 1841",
6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],
AUTHORITY["EPSG","6120"]],PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943278,
AUTHORITY["EPSG","9122"]],AXIS["Lat",NORTH],AXIS["Lon",EAST],
AUTHORITY["EPSG","4120"]]';
SRS 定義の文法は、「OpenGIS 実装仕様: 座標変換サービス」、Revision 1.00、OGC 01-009、2001 年 1 月 12 日、7.2 セクションで定義されている文法に基づきます。 この仕様は、http://www.opengeospatial.org/standards/ct で入手できます。
MySQL では、次の変更が仕様に組み込まれています:
<horz cs>
の本番ルール (つまり、地理的および予測される SRS) のみが実装されます。<parameter>
には、オプションの非標準の<authority>
句があります。 これにより、投影パラメータを名前ではなく権限で認識できます。この指定によって、
GEOGCS
空間参照システム定義でAXIS
句が必須になることはありません。 ただし、AXIS
句がない場合、MySQL では、定義に緯度 - 経度順または経度 - 緯度順の軸があるかどうかを判断できません。 MySQL では、各GEOGCS
定義に 2 つのAXIS
句を含める必要があるという非標準要件が適用されます。 一方はNORTH
またはSOUTH
、もう一方はEAST
またはWEST
である必要があります。AXIS
句の順序によって、定義に緯度 - 経度順と経度 - 緯度順のどちらの軸があるかが決まります。SRS 定義に改行を含めることはできません。
SRS 定義で投影の権限コードが指定されている場合 (推奨)、定義に必須パラメータがないとエラーが発生します。 この場合、エラーメッセージに問題の内容が示されます。 MySQL でサポートされる投影方法および必須パラメータは、表13.7「サポートされている空間参照システム投影方法」 および 表13.8「空間参照システム予測パラメータ」 に示されています。
MySQL の SRS 定義の記述の詳細は、「MySQL 8.0 での地理空間参照システム」および「MySQL 8.0 での空間参照システムの予測」を参照してください
次のテーブルに、MySQL でサポートされる投影方法を示します。 MySQL では不明な投影方法が許可されますが、必須パラメータの定義をチェックすることはできず、空間データを不明な投影との間で変換することもできません。 式を含む各予測の動作の詳細は、「EPSG ガイダンスノート 7-2」を参照してください。
表 13.7 サポートされている空間参照システム投影方法
EPSG コード | 見積名 | 必須パラメータ (EPSG コード) |
---|---|---|
1024 | 人気のある視覚化擬似 Mercator | 8801, 8802, 8806, 8807 |
1027 | ランバートアジムタル等地区 (球面) | 8801, 8802, 8806, 8807 |
1028 | 均一円柱状 | 8823, 8802, 8806, 8807 |
1029 | 均一円筒 (球状) | 8823, 8802, 8806, 8807 |
1041 | クロヴァク語 (北方向) | 8811, 8833, 1036, 8818, 8819, 8806, 8807 |
1042 | Krovak 変更済 | 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035 |
1043 | Krovak Modified (北向き) | 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035 |
1051 | Lambert Conic Conformal (2SP ミシガン) | 8821, 8822, 8823, 8824, 8826, 8827, 1038 |
1052 | コロンビア都市 | 8801, 8802, 8806, 8807, 1039 |
9801 | Lambert Conic Conformal (1SP) | 8801, 8802, 8805, 8806, 8807 |
9802 | Lambert Conic Conformal (2SP) | 8821, 8822, 8823, 8824, 8826, 8827 |
9803 | Lambert Conic Conformal (2SP ベルギー) | 8821, 8822, 8823, 8824, 8826, 8827 |
9804 | Mercator (バリアント A) | 8801, 8802, 8805, 8806, 8807 |
9805 | Mercator (バリアント B) | 8823, 8802, 8806, 8807 |
9806 | Cassini-Soldner | 8801, 8802, 8806, 8807 |
9807 | Transverse Mercator | 8801, 8802, 8805, 8806, 8807 |
9808 | Transverse Mercator (南向き) | 8801, 8802, 8805, 8806, 8807 |
9809 | 液体ステレオグラフィー | 8801, 8802, 8805, 8806, 8807 |
9810 | 極立体視 (バリアント A) | 8801, 8802, 8805, 8806, 8807 |
9811 | ニュージーランド地図グリッド | 8801, 8802, 8806, 8807 |
9812 | Hotine Oblique Mercator (バリアント A) | 8811, 8812, 8813, 8814, 8815, 8806, 8807 |
9813 | Laborde Oblique Mercator | 8811, 8812, 8813, 8815, 8806, 8807 |
9815 | Hotine Oblique Mercator (バリアント B) | 8811, 8812, 8813, 8814, 8815, 8816, 8817 |
9816 | チュニジアマイニンググリッド | 8821, 8822, 8826, 8827 |
9817 | Lambert Conic Near-Conformal | 8801, 8802, 8805, 8806, 8807 |
9818 | アメリカ領ポリコン | 8801, 8802, 8806, 8807 |
9819 | Krovak | 8811, 8833, 1036, 8818, 8819, 8806, 8807 |
9820 | ランバートアジムタル等圏 | 8801, 8802, 8806, 8807 |
9822 | Albers Equal Area | 8821, 8822, 8823, 8824, 8826, 8827 |
9824 | Transverse Mercator ゾーングリッドシステム | 8801, 8830, 8831, 8805, 8806, 8807 |
9826 | ランバートコニック連合 (西方向) | 8801, 8802, 8805, 8806, 8807 |
9828 | ボンヌ (南指向) | 8801, 8802, 8806, 8807 |
9829 | 極立体視 (バリアント B) | 8832, 8833, 8806, 8807 |
9830 | 極立体視 (バリアント C) | 8832, 8833, 8826, 8827 |
9831 | グアム投影 | 8801, 8802, 8806, 8807 |
9832 | 修正済方程式 | 8801, 8802, 8806, 8807 |
9833 | 双曲線カシーニ=ソルドナー | 8801, 8802, 8806, 8807 |
9834 | ランバートシリンダル等面 (球面) | 8823, 8802, 8806, 8807 |
9835 | ランバートシリンダル等面 | 8823, 8802, 8806, 8807 |
次のテーブルに、MySQL で認識される投影パラメータを示します。 認識は主に権限コードによって行われます。 認証局コードがない場合、MySQL は、パラメータ名に一致する大/小文字を区別しない文字列にフォールバックします。 各パラメータの詳細は、「EPSG オンラインレジストリ」のコードを参照してください。
表 13.8 空間参照システム予測パラメータ
EPSG コード | フォールバック名 (MySQL で認識) | EPSG 名 |
---|---|---|
1026 | c1 | C1 |
1027 | c2 | C2 |
1028 | c3 | C3 |
1029 | c4 | C4 |
1030 | c5 | C5 |
1031 | c6 | C6 |
1032 | c7 | C7 |
1033 | c8 | C8 |
1034 | c9 | C9 |
1035 | c10 | C10 |
1036 | 方位角 | 円錐軸の同一レベル |
1038 | ellipsoid_scale_factor | 楕円体スケーリング係数 |
1039 | projection_plane_height_at_origin | 投影平面原点の高さ |
8617 | evaluation_point_ordinate_1 | 評価ポイントの序数 1 |
8618 | evaluation_point_ordinate_2 | 評価ポイントの序数 2 |
8801 | latitude_of_origin | 自然起点の緯度 |
8802 | central_meridian | 自然原点の経度 |
8805 | scale_factor | 自然原点のスケール係数 |
8806 | false_easting | 偽東座標 |
8807 | false_northing | 偽北座標 |
8811 | latitude_of_center | 投影センターの緯度 |
8812 | longitude_of_center | 投影中心の経度 |
8813 | 方位角 | 最初の行の方位角 |
8814 | rectified_grid_angle | ジオメトリ補正からスキューグリッドまでの角度 |
8815 | scale_factor | 初期線の尺度係数 |
8816 | false_easting | 投影中心の東座標 |
8817 | false_northing | 投影中心の北座標 |
8818 | pseudo_standard_parallel_1 | 擬似標準並列度 |
8819 | scale_factor | 疑似標準パラレルのスケール係数 |
8821 | latitude_of_origin | 偽起点の緯度 |
8822 | central_meridian | 偽原点の経度 |
8823 | standard_parallel_1, standard_parallel1 | 第 1 標準平行度 |
8824 | standard_parallel_2, standard_parallel2 | 第 2 標準並列度 |
8826 | false_easting | 偽原点の東座標 |
8827 | false_northing | 偽原点での北座標 |
8830 | initial_longitude | 初期経度 |
8831 | zone_width | ゾーンの幅 |
8832 | standard_parallel | 標準並列度 |
8833 | longitude_of_center | 原点の経度 |