Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  CREATE SPATIAL REFERENCE SYSTEM Statement

15.1.19 创建空间参考系统语句

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_SCHEMAST_SPATIAL_REFERENCE_SYSTEMS表来检查。

SRID值必须唯一,如果不指定OR REPLACEIF NOT EXISTS,如果已经存在具有给定srid值的SRS定义,则发生错误。

使用CREATE OR REPLACE语法,任何已有的SRS定义具有相同SRID值将被替换,除非该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语法,任何已有的SRS定义具有相同SRID值将被忽略,并出现警告。

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 是欧洲石油勘探集团的简称。

  • 用户不应该创建 SRIDs 在保留范围内。这样做将会导致 SRIDs 与 MySQL 发布的 SRS 定义冲突,结果是新系统提供的 SRS 不安装或用户定义的 SRS 将被覆盖。

语句属性必须满足这些条件:

  • 属性可以任意顺序,但不能重复出现一个属性。

  • 语句中必须包含NAMEDEFINITION 属性。

  • 语句中的NAME srs_name 属性值必须唯一。ORGANIZATION org_nameorg_id 属性值的组合也必须唯一。

  • 语句中的NAME srs_name 属性值和 ORGANIZATION org_name 属性值不能是空或以空格开头结尾。

  • 属性指定中的字符串值不能包含控制字符,包括换行符。

  • 以下表格显示了字符串属性值的最大长度。

    表15.6 CREATE SPATIAL REFERENCE SYSTEM 属性长度

    Attribute Maximum Length (characters)
    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)。

  • 有一个可选的非标准<authority>子句用于<parameter>。这样可以根据权威机构来识别投影参数,而不是名称。

  • 规范不强制要求AXIS子句在GEOGCS空间参考系统定义中出现。然而,如果没有AXIS子句,MySQL就不能确定定义是否以经纬度顺序或经度纬度顺序。MySQL强制要求每个GEOGCS定义包含两个AXIS子句,其中一个必须是NORTHSOUTH,另一个必须是EASTWESTAXIS子句顺序决定定义是否以经纬度顺序或经度纬度顺序。

  • SRS 定义中不允许包含换行符。

如果 SRS 定义指定投影的权威代码(推荐),那么如果缺少必需参数,MySQL 就会出现错误。在这种情况下,错误信息将指出问题所在。MySQL 支持的投影方法和必需参数如表15.7,“支持的空间参考系统投影方法”表15.8,“空间参考系统投影参数”中所示。

MySQL 支持的投影方法表。MySQL 允许未知的投影方法,但不能检查必需参数定义,也不能将空间数据转换为或从未知投影中。关于每种投影的详细解释,包括公式,请参阅EPSG 指南 7-2

表15.7 支持的空间参考系统投影方法

EPSG Code Projection Name Mandatory Parameters (EPSG Codes)
1024 Popular Visualisation Pseudo Mercator 8801, 8802, 8806, 8807
1027 球面 Lambert 等面积投影 8801, 8802, 8806, 8807
1028 等距圆柱投影 8823, 8802, 8806, 8807
1029 Equidistant Cylindrical (Spherical) 8823, 8802, 8806, 8807
1041 Krovak (North Orientated) 8811, 8833, 1036, 8818, 8819, 8806, 8807
1042 Krovak Modified 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035
1043 Krovak Modified (North Orientated) 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035
1051 Lambert Conic Conformal (2SP Michigan) 8821, 8822, 8823, 8824, 8826, 8827, 1038
1052 Colombia Urban 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 Belgium) 8821, 8822, 8823, 8824, 8826, 8827
9804 Mercator (variant A) 8801, 8802, 8805, 8806, 8807
9805 Mercator (variant B) 8823, 8802, 8806, 8807
9806 Cassini-Soldner 8801, 8802, 8806, 8807
9807 Transverse Mercator 8801, 8802, 8805, 8806, 8807
9808 Transverse Mercator (South Orientated) 8801, 8802, 8805, 8806, 8807
9809 Oblique Stereographic 8801, 8802, 8805, 8806, 8807
9810 Polar Stereographic (variant A) 8801, 8802, 8805, 8806, 8807
9811 New Zealand Map Grid 8801, 8802, 8806, 8807
9812 Hotine Oblique Mercator (variant A) 8811, 8812, 8813, 8814, 8815, 8806, 8807
9813 Laborde Oblique Mercator 8811, 8812, 8813, 8815, 8806, 8807
9815 Hotine Oblique Mercator (variant B) 8811, 8812, 8813, 8814, 8815, 8816, 8817
9816 Tunisia Mining Grid 8821, 8822, 8826, 8827
9817 Lambert Conic Near-Conformal 8801, 8802, 8805, 8806, 8807
9818 American Polyconic 8801, 8802, 8806, 8807
9819 Krovak 8811, 8833, 1036, 8818, 8819, 8806, 8807
9820 Lambert Azimuthal Equal Area 8801, 8802, 8806, 8807
9822 Albers Equal Area 8821, 8822, 8823, 8824, 8826, 8827
9824 Transverse Mercator Zoned Grid System 8801, 8830, 8831, 8805, 8806, 8807
9826 Lambert Conic Conformal (West Orientated) 8801, 8802, 8805, 8806, 8807
9828 Bonne (South Orientated) 8801, 8802, 8806, 8807
9829 Polar Stereographic (variant B) 8832, 8833, 8806, 8807
9830 Polar Stereographic (variant C) 8832, 8833, 8826, 8827
9831 Guam Projection 8801, 8802, 8806, 8807
9832 Modified Azimuthal Equidistant 8801, 8802, 8806, 8807
9833 Hyperbolic Cassini-Soldner 8801, 8802, 8806, 8807
9834 Lambert Cylindrical Equal Area (Spherical) 8823, 8802, 8806, 8807
9835 圆柱 Lambert 等面积投影 8823, 8802, 8806, 8807

MySQL 认识的投影参数表。主要是通过权威代码进行识别。如果没有权威代码,MySQL 将回退到不区分大小写的字符串匹配方式来匹配参数名称。关于每个参数的详细信息,请在EPSG 在线注册表中查找。

表15.8 空间参考系统投影参数

EPSG Code Fallback Name (Recognized by MySQL) EPSG Name
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 Co-latitude of cone axis
1038 ellipsoid_scale_factor Ellipsoid scaling factor
1039 projection_plane_height_at_origin Projection plane origin height
8617 evaluation_point_ordinate_1 Ordinate 1 of evaluation point
8618 evaluation_point_ordinate_2 Ordinate 2 of evaluation point
8801 latitude_of_origin Latitude of natural origin
8802 central_meridian Longitude of natural origin
8805 scale_factor Scale factor at natural origin
8806 false_easting False easting
8807 false_northing False northing
8811 latitude_of_center Latitude of projection centre
8812 longitude_of_center Longitude of projection centre
8813 azimuth Azimuth of initial line
8814 rectified_grid_angle Angle from Rectified to Skew Grid
8815 scale_factor Scale factor on initial line
8816 false_easting Easting at projection centre
8817 false_northing Northing at projection centre
8818 pseudo_standard_parallel_1 Latitude of pseudo standard parallel
8819 scale_factor Scale factor on pseudo standard parallel
8821 latitude_of_origin Latitude of false origin
8822 central_meridian Longitude of false origin
8823 standard_parallel_1, standard_parallel1 Latitude of 1st standard parallel
8824 standard_parallel_2, standard_parallel2 Latitude of 2nd standard parallel
8826 false_easting Easting at false origin
8827 false_northing Northing at false origin
8830 initial_longitude Initial longitude
8831 zone_width Zone width
8832 standard_parallel Latitude of standard parallel
8833 中心经度 起点经度