首页
学习
活动
专区
圈层
工具
发布

MySQL的GIS功能

MySQL的GIS(空间信息系统)功能从8.0开始进行了大幅改进,包括支持空间数据参照系统,空间数据索引等等新功能和新特性。

MySQL空间扩展支持地理特征的生成、存储和分析,包括:

  • 表示空间值的数据类型
  • 操作空间值的函数
  • 用于改进空间列访问速度的空间索引

MySQL的空间数据类型包括单值类型和多值类型,每种下面分别包括点、线、多边形及任意几何图形。

单值类型:

  • GEOMETRY
  • POINT
  • LINESTRING
  • POLYGON

多值类型:

  • MULTIPOINT
  • MULTILINESTRING
  • MULTIPOLYGON
  • GEOMETRYCOLLECTION

MySQL提供多种函数对空间值数据进行操作,关于函数的详细内容,请访问官网的在线手册。

MySQL支持使用空间索引对空间值数据进行查询优化,空间列上的空间索引使用r - tree。使用几何图形的最小边界矩形(MBR)构建空间索引。MBR是包围大多数几何图形的最小矩形。对于水平或垂直的linestring, MBR是退化为linestring的矩形。对于一个点,MBR是一个退化为该点的矩形。同时,MySQL还支持在空间列上创建普通索引。

MyISAM和InnoDB同时支持空间和非空间索引。其他存储引擎仅支持非空间索引。

此外,MySQL支持空间数据参照系统。用户可以根据需要采用不同的参考系统,包括创建自己的参照系统。

空间数据参考系统(SRS)是一种基于坐标的地理位置系统。有不同类型的空间参考系统:

  • 投影SRS是地球在平面上的投影,也就是平面地图。例如,通过在地球仪内使用灯泡照射在环绕地球仪的纸圆筒上,将地图投射到纸上。根据地理位置,每个点都映射到地球上的一个地方。该平面上的坐标系统是使用长度单位(米、英尺等)的笛卡尔坐标,而不是经度和纬度。这里的球体是椭球体(扁平的球体)。地球的南北轴比东西轴短一点,使用扁平的球体更准确,但完美的球体可以更快地计算。
  • 地理SRS是表示椭球面上任意角度单位的经纬度(或经纬度-经度)坐标的非投影SRS。
  • SRID 0在MySQL中表示的SRS是一个无限平坦的笛卡尔平面,其轴上没有指定单位。与投影SRSs不同,它没有地理参考,也不一定代表地球。它是一个抽象的平面,可以用来做任何事情。SRID 0是MySQL中空间数据的默认SRID。
举报
领券