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。
上面是关于MySQL GIS的一个简介。更为详尽的内容和示例可以观看MySQL团队的杜修文老师(Ivan Tu)的公开讲座:
视频1:
视频2:
视频3:
另外,杜老师视频中使用的资料,可以通过扫码下载:有效期为3月21日前。
感谢您关注MySQL!