• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 创建空间参考系统语句

    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)定义并将其存储在数据字典中。可以使用该INFORMATION_SCHEMAST_SPATIAL_REFERENCE_SYSTEMS表检查定义。此语句需要SUPER特权。

    如果既未指定也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,请使用以下查询:

    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定义冲突的风险,结果是未安装新的系统提供的SRS进行MySQL升级,或者覆盖了用户定义的SRS。

    语句的属性必须满足以下条件:

    • 可以以任何顺序给定属性,但是不能给多个属性一次以上。
    • NAMEDEFINITION属性是强制性的。
    • NAMEsrs_name属性值必须是唯一的。ORGANIZATIONorg_nameorg_id属性值的组合必须唯一。
    • NAMEsrs_name属性值和ORGANIZATIONorg_name属性值不能为空或开始或空白结束。
    • 属性规范中的字符串值不能包含控制字符,包括换行符。
    • 下表显示了字符串属性值的最大长度。

      创建空间参考系统属性长度

      属性最大长度(字符)
      NAME80
      DEFINITION4096
      ORGANIZATION256
      DESCRIPTION2048

    这是一个示例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日,中定义的语法。该规范可从 http://www.opengeospatial.org/standards/ct获得。

    MySQL对规范进行了以下更改:

    • 仅实施<horz cs>生产规则(即地理和计划的SRS)。
    • 有一个可选的非标准<authority>子句<parameter>。这使得可以通过权限而不是名称来识别投影参数。
    • 该规范没有AXISGEOGCS空间参考系统定义中使条款成为强制性的。但是,如果没有AXIS子句,MySQL将无法确定定义的坐标轴是纬度-经度顺序还是经度-纬度顺序。MySQL强制执行非标准要求,即每个GEOGCS定义必须包含两个AXIS子句。一个人必须是NORTHSOUTH,其他EASTWEST。该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
    1042Krovak修改8811、8833、1036、8818、8819、8806、8807、8617、8618、1026、1027、1028、1029、1030、1031、1032、1033、1034、1035
    1043Krovak改装(朝北)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
    9826Lambert 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 CodeFallback Name(Recognized by MySQL)EPSG Name
    1026c1C1
    1027c2C2
    1028c3C3
    1029c4C4
    1030c5C5
    1031c6C6
    1032c7C7
    1033c8C8
    1034c9C9
    1035c10C10
    1036azimuthCo-latitude of cone axis
    1038ellipsoid_scale_factorEllipsoid scaling factor
    1039projection_plane_height_at_originProjection plane origin height
    8617evaluation_point_ordinate_1Ordinate 1 of evaluation point
    8618evaluation_point_ordinate_2Ordinate 2 of evaluation point
    8801latitude_of_originLatitude of natural origin
    8802central_meridianLongitude of natural origin
    8805scale_factorScale factor at natural origin
    8806false_eastingFalse easting
    8807false_northingFalse northing
    8811latitude_of_centerLatitude of projection centre
    8812longitude_of_centerLongitude of projection centre
    8813azimuthAzimuth of initial line
    8814rectified_grid_angleAngle from Rectified to Skew Grid
    8815scale_factorScale factor on initial line
    8816false_eastingEasting at projection centre
    8817false_northingNorthing at projection centre
    8818pseudo_standard_parallel_1Latitude of pseudo standard parallel
    8819scale_factorScale factor on pseudo standard parallel
    8821latitude_of_originLatitude of false origin
    8822central_meridianLongitude of false origin
    8823standard_parallel_1, standard_parallel1Latitude of 1st standard parallel
    8824standard_parallel_2, standard_parallel2Latitude of 2nd standard parallel
    8826false_eastingEasting at false origin
    8827false_northingNorthing at false origin
    8830initial_longitudeInitial longitude
    8831zone_widthZone width
    8832standard_parallelLatitude of standard parallel
    8833longitude_of_centerLongitude of origin