创建空间参考系统语句
CREATE ORREPLACE SPATIAL REFERENCE SYSTEM srid srs_attribute ...CREATE SPATIAL REFERENCE SYSTEM [IF NOTEXISTS ] srid srs_attribute ... srs_attribute: {NAME 'srs_name' |DEFINITION 'definition' |ORGANIZATION 'org_name'IDENTIFIED BY org_id |DESCRIPTION 'description' } srid, org_id: 32-bitunsigned integer
该语句创建空间参考系统(SRS)定义并将其存储在数据字典中。可以使用该INFORMATION_SCHEMA
ST_SPATIAL_REFERENCE_SYSTEMS
表检查定义。此语句需要SUPER
特权。
如果既未指定也OR REPLACE
未IF NOT EXISTS
指定,则已经存在带有SRID值的SRS定义,则会发生错误。
使用CREATE OR REPLACE
语法,将替换具有相同SRID值的任何现有SRS定义,除非SRID值由现有表中的某些列使用。在这种情况下,将发生错误。例如:
mysql>CREATE ORREPLACE SPATIAL REFERENCE SYSTEM 4326 ...; ERROR 3716 (SR005): Can't modify SRID 4326. There is at least one column depending on it.
要确定哪些列使用SRID,请使用以下查询:
SELECT *FROM INFORMATION_SCHEMA.ST_GEOMETRY_COLUMNSWHERE 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定义冲突的风险,结果是未安装新的系统提供的SRS进行MySQL升级,或者覆盖了用户定义的SRS。
语句的属性必须满足以下条件:
- 可以以任何顺序给定属性,但是不能给多个属性一次以上。
- 在
NAME
和DEFINITION
属性是强制性的。 - 该
NAME
srs_name
属性值必须是唯一的。ORGANIZATION
org_name
和org_id
属性值的组合必须唯一。 NAME
srs_name
属性值和ORGANIZATION
org_name
属性值不能为空或开始或空白结束。- 属性规范中的字符串值不能包含控制字符,包括换行符。
下表显示了字符串属性值的最大长度。
创建空间参考系统属性长度
属性 最大长度(字符) NAME
80 DEFINITION
4096 ORGANIZATION
256 DESCRIPTION
2048
这是一个示例CREATE SPATIAL REFERENCE SYSTEM
语句。DEFINITION
跨多行重新格式化该值以提高可读性。(为了使该语句合法,该值实际上必须在一行上给出。)
CREATE SPATIAL REFERENCE SYSTEM 4120NAME 'Greek'ORGANIZATION 'EPSG'IDENTIFIED BY 4120DEFINITION '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日,中定义的语法。该规范可从 http://www.opengeospatial.org/standards/ct获得。
MySQL对规范进行了以下更改:
- 仅实施
<horz cs>
生产规则(即地理和计划的SRS)。 - 有一个可选的非标准
<authority>
子句<parameter>
。这使得可以通过权限而不是名称来识别投影参数。 - 该规范没有
AXIS
在GEOGCS
空间参考系统定义中使条款成为强制性的。但是,如果没有AXIS
子句,MySQL将无法确定定义的坐标轴是纬度-经度顺序还是经度-纬度顺序。MySQL强制执行非标准要求,即每个GEOGCS
定义必须包含两个AXIS
子句。一个人必须是NORTH
或SOUTH
,其他EAST
或WEST
。该AXIS
子句顺序决定的定义是否在纬度-经度顺序或经纬度顺序轴。 - SRS定义可能不包含换行符。
如果SRS定义为投影指定了授权码(建议),则如果定义缺少必需参数,则会发生错误。在这种情况下,错误消息将指出问题所在。“支持的空间参考系统投影方法”和“空间参考系统投影参数”中显示了MySQL支持的投影方法和必需参数。
有关编写SRS定义为MySQL的更多信息,请参见在MySQL 8.0地理空间参考系统和投影空间参照系在MySQL 8.0
下表显示了MySQL支持的投影方法。MySQL允许使用未知的投影方法,但不能检查强制参数的定义,也不能将空间数据与未知投影进行相互转换。有关每个投影的工作原理(包括公式)的详细说明,请参阅 EPSG指导说明7-2。
支持的空间参考系统投影方法
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 | Krovak修改 | 8811、8833、1036、8818、8819、8806、8807、8617、8618、1026、1027、1028、1029、1030、1031、1032、1033、1034、1035 |
1043 | Krovak改装(朝北) | 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 | Lambert Conic Conformal(西向) | 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 |
EPSG代码 | 投影名称 | 强制性参数(EPSG代码) |
---|
下表显示了MySQL可以识别的投影参数。识别主要通过授权码进行。如果没有授权码,MySQL将退回到参数名称上不区分大小写的字符串匹配。有关每个参数的详细信息,请通过EPSG在线注册表中的代码进行查找。
空间参考系统投影参数
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 longitude_of_center Longitude of origin