MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  CREATE SPATIAL REFERENCE SYSTEM ステートメント

13.1.19 CREATE SPATIAL REFERENCE SYSTEM ステートメント

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 REPLACEIF 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_nameorg_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 原点の経度


関連キーワード:  ステートメント, CREATE, 定義, TABLE, DROP, EPSG, 投影, SPATIAL, REFERENCE, SRID