文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
手冊頁 (TGZ) - 258.5Kb
手冊頁 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  CREATE SPATIAL REFERENCE SYSTEM 陳述式

15.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

此陳述式會建立空間參考系統 (SRS) 定義,並將其儲存在資料字典中。它需要 SUPER 權限。可以使用 INFORMATION_SCHEMA ST_SPATIAL_REFERENCE_SYSTEMS 表格檢查產生的資料字典項目。

SRID 值必須是唯一的,因此如果未指定 OR REPLACEIF NOT EXISTS,則如果已存在具有給定 srid 值的 SRS 定義,就會發生錯誤。

使用 CREATE OR REPLACE 語法時,會取代具有相同 SRID 值的任何現有 SRS 定義,除非該 SRID 值被現有表格中的某些欄位使用。在這種情況下,會發生錯誤。例如:

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。這樣做會導致 SRID 與未來隨 MySQL 發佈的 SRS 定義衝突,導致在 MySQL 升級時未安裝新的系統提供的 SRS,或使用者定義的 SRS 被覆寫的風險。

陳述式的屬性必須滿足這些條件:

  • 屬性可以以任何順序給定,但任何屬性都不能給定多次。

  • NAMEDEFINITION 屬性是強制性的。

  • NAME srs_name 屬性值必須是唯一的。ORGANIZATION org_nameorg_id 屬性值的組合必須是唯一的。

  • NAME srs_name 屬性值和 ORGANIZATION org_name 屬性值不能為空,也不能以空白符號開頭或結尾。

  • 屬性規格中的字串值不能包含控制字元,包括換行符號。

  • 下表顯示字串屬性值的最大長度。

    表格 15.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 實作規範:座標轉換服務,修訂版 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 定義都必須包含兩個 AXIS 子句。一個必須是 NORTHSOUTH,另一個必須是 EASTWESTAXIS 子句順序決定了定義的軸是按緯度-經度順序還是經度-緯度順序排列。

  • SRS 定義可能不包含換行符號。

如果 SRS 定義為投影指定授權代碼(建議這樣做),則如果定義缺少強制性參數,則會發生錯誤。在這種情況下,錯誤訊息會指出問題所在。MySQL 支援的投影方法和強制性參數顯示在表格 15.7,“支援的空間參考系統投影方法”表格 15.8,“空間參考系統投影參數” 中。

下表顯示 MySQL 支援的投影方法。MySQL 允許未知的投影方法,但無法檢查定義中是否有強制性參數,也無法將空間資料轉換為未知投影或從未知投影轉換。有關每個投影如何運作的詳細說明,包括公式,請參閱 EPSG 指導說明 7-2

表格 15.7 支援的空間參考系統投影方法

EPSG 代碼 投影名稱 強制性參數 (EPSG 代碼)
1024 常用的視覺化偽麥卡托投影 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 修改過的克羅瓦克投影 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035
1043 修改過的克羅瓦克投影 (北向) 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035
1051 蘭伯特正形圓錐投影 (2SP 密西根) 8821, 8822, 8823, 8824, 8826, 8827, 1038
1052 哥倫比亞都市投影 8801, 8802, 8806, 8807, 1039
9801 蘭伯特正形圓錐投影 (1SP) 8801, 8802, 8805, 8806, 8807
9802 蘭伯特正形圓錐投影 (2SP) 8821, 8822, 8823, 8824, 8826, 8827
9803 蘭伯特正形圓錐投影 (2SP 比利時) 8821, 8822, 8823, 8824, 8826, 8827
9804 麥卡托投影 (變體 A) 8801, 8802, 8805, 8806, 8807
9805 麥卡托投影 (變體 B) 8823, 8802, 8806, 8807
9806 卡西尼-索爾納投影 8801, 8802, 8806, 8807
9807 橫麥卡托投影 8801, 8802, 8805, 8806, 8807
9808 橫麥卡托投影 (南向) 8801, 8802, 8805, 8806, 8807
9809 斜方位投影 8801, 8802, 8805, 8806, 8807
9810 極方位立體投影 (變體 A) 8801, 8802, 8805, 8806, 8807
9811 紐西蘭地圖網格 8801, 8802, 8806, 8807
9812 霍廷斜麥卡托投影 (變體 A) 8811, 8812, 8813, 8814, 8815, 8806, 8807
9813 拉伯德斜麥卡托投影 8811, 8812, 8813, 8815, 8806, 8807
9815 霍廷斜麥卡托投影 (變體 B) 8811, 8812, 8813, 8814, 8815, 8816, 8817
9816 突尼西亞採礦網格 8821, 8822, 8826, 8827
9817 蘭伯特近正形圓錐投影 8801, 8802, 8805, 8806, 8807
9818 美國多圓錐投影 8801, 8802, 8806, 8807
9819 克羅瓦克投影 8811, 8833, 1036, 8818, 8819, 8806, 8807
9820 蘭伯特方位等面積投影 8801, 8802, 8806, 8807
9822 阿爾伯斯等面積投影 8821, 8822, 8823, 8824, 8826, 8827
9824 橫麥卡托分區網格系統 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 線上註冊表 中按代碼查詢。

表格 15.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 azimuth 圓錐軸的餘緯度
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 azimuth 初始線的方位角
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 第一條標準平行線的緯度
8824 standard_parallel_2, standard_parallel2 第二條標準平行線的緯度
8826 false_easting 虛假原點的東距
8827 false_northing 虛假原點的北距
8830 initial_longitude 初始經度
8831 zone_width 區域寬度
8832 standard_parallel 標準平行線的緯度
8833 longitude_of_center 原點經度