MySQL空间数据函数
以下列出常用MySQL数据函数,更多的函数查阅MySQL官方文档
数据插入
INSERT into 表明(字段名) VALUES(ST_GeomFromText('wkt数据格式'))
空间数据函数
点要素相关函数
ST_StartPoint(A)
获取要素开始点
ST_EndPoint(A)
获取要素结束点
ST_X(A)
获取点要素A的X坐标
ST_Y(A)
获取点要素A的Y坐标
ST_ConvexHull(A)
获取多点的凸外包面
ST_MakeEnvelope(A,B)
返回以 A、B为对角点的矩形
线要素相关函数
ST_IsClosed(A)
线是否闭合
ST_NumPoints(A)
获取线中点数量
ST_PointN(A,n)
获取线中第n个点
ST_Envelope(A)
生成矩形, A只有两个点,且不是水平或竖直线
面要素相关函数
ST_ExteriorRing(A)
获取A面外环边界,返回值为LineString
ST_InteriorRingN(A,num)
获取面A中第num个内环边界,返回值为LineString,num从1开始。
ST_NumInteriorRings(A)
获取A面内环数量(5.7.8后添加ST_NumInteriorRing,效果一样)
几何关系函数
包含相关函数
MBRContains(A,B)
A包含B,B在A中
包含在内返回true,不包含在内返回false
MBRWithin(A,B)
B包含A,A在B中
包含在内返回true,不包含在内返回false
覆盖相关函数
MBRCoveredBy(A,B)
A被B覆盖
MBRCovers(A,B)
B被A覆盖
相交相关函数
MBRDisjoint(A,B)
A、B不相交
MBRIntersects(A,B)
A、B相交
接触(相切)相关函数
MBRTouches(A,B)
A、B接触,接触的概念类似于相切
重叠相关函数
MBROverlaps(A,B)
A、B重叠
相同函数
MBREquals(A,B)
A、B相同
几何关系计算函数
ST_Intersection(A,B)
返回要素A和要素B相交的部分,返回WKT格式要素
ST_SymDifference(A,B)
返回要素A和要素B相交部分以外的部分,A、B中独有的,返回WKT格式要素
ST_Union(A,B)
返回要素A和要素B合并的并集,返回WKT格式要素
ST_Difference(A,B)
返回要素A中有要素B中没有的
几何计算函数
ST_Length(A)
获取线的长度
ST_Area(A)
获取面的面积
ST_Centroid(A)
获取要素质心
ST_Distance(A,B)
获取要素A和要素B的直线距离
ST_Distance_Sphere(A,B)
获取要素A和要素B的球面距离
ST_Simplify(A,mix_distance)
要素抽稀,将A抽稀,简化A中两点距离小于max的值
ST_Buffer(A,length)
通过A要素,生成周边范围为length距离的面
5.7.7后可以添加策略影响缓冲区的计算,设置的语句是ST_Buffer_Strategy()
- point策略
- point_circle –> 点的缓冲区是一个圆(默认)
- point_square –> 点的缓冲区是一个正方形,length是点到其中一边的距离
- join策略
- join_round –> 连接处缓冲区边界为圆弧(默认)
- join_miter –> 连接处缓冲区边界为尖角
- end策略
- end_round –> 在结束处缓冲区为圆弧(默认)
- end_flat –> 在结束处缓冲区为平坦的直线
示例:
ST_Buffer(point,10, ST_Buffer_Strategy('point_square'))
ST_Buffer(line, 10, ST_Buffer_Strategy('join_miter', 10), ST_Buffer_Strategy('end_flat'))
验证数据是否合法
ST_IsValid(A)
STValidate(A)
数据格式函数
数据输入函数
ST_GeometryFromText(wkt格式数据)
将wkt格式数据转换成Geometry数据
st_geomfromgeojson(geoJson格式数据)
将geoJson格式数据转换成Geometry数据
数据输出函数
st_aswkt(字段名)
返回wkt数据
st_asgeojson(字段名)
返回geoJson格式数据
ST_AsBinary(字段名)
返回二进制格式数据