文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  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 代表 歐洲石油調查小組 (European Petroleum Survey Group)。

  • 使用者不應在保留的範圍內建立具有 SRID 的 SRS。這樣做會導致 SRID 與未來隨 MySQL 發布的 SRS 定義發生衝突,導致新的系統提供的 SRS 無法安裝以進行 MySQL 升級,或導致使用者定義的 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 原點的經度