插入时使用ST_GeomFromText,也可使用GeomFromText
INSERT INTO t_customers ( lon_lat_point ) VALUES ( GeomFromText ( ‘POINT(123 123)‘ ) )
https://blog.csdn.net/xinlingjun2007/article/details/80457079
MBRContains(A,B) –> A包含B
MBRWithin(A,B) –> A在B中
注意:包含关系中,所要验证的集合必须全部包含在指定的集合中。如果只有部分在其中,应该使用相交
MBRCoveredBy(A,B) –> A被B覆盖
MBRCovers(A,B) –> A覆盖B
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_StartPoint(A)
ST_EndPoint(A)
获取x或y
ST_X(A)
ST_Y(A)
ST_ConvexHull(A) –> 多点A的凸包面
ST_MakeEnvelope(A,B) –> A、B为对角点
线是否闭合
ST_IsClosed(A)
线中点数量
ST_NumPoints
线中第n个点
ST_PointN(A,n)
线长度
ST_Length(A)
生成矩形
ST_Envelope(A) –> A只有两个点,且不是水平或竖直线
ST_Area(A)
面的内外边界
ST_ExteriorRing(A) –> 获取A面外环边界,返回值为LineString
ST_InteriorRingN(A,num) –> 获取A面中第num个内环边界,返回值为LineString。num从1开始。
ST_NumInteriorRings(A) –> 获取A面内环数量(5.7.8后添加ST_NumInteriorRing,效果一样)
部分geo对象可用
交集
ST_Intersection(A,B)
异或
ST_SymDifference(A,B) –> A、B中独有的
并集
ST_Union(A,B)
质心
ST_Centroid(A)
距离
ST_Distance(A,B) –> A和B距离
ST_Distance_Sphere(A,B) –> A和B的球面距离
不同
ST_Difference(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_circle –> 点的缓冲区是一个圆(默认)
point_square –> 点的缓冲区是一个正方形,length是点到其中一边的距离
join_round –> 连接处缓冲区边界为圆弧(默认)
join_miter –> 连接处缓冲区边界为尖角
end_round –> 在结束处缓冲区为圆弧(默认)
end_flat –> 在结束处缓冲区为平坦的直线
ST_Buffer(point, 5, ST_Buffer_Strategy(‘point_square‘))
ST_Buffer(line, 5, ST_Buffer_Strategy(‘join_miter‘, 10), ST_Buffer_Strategy(‘end_flat‘))
ST_Intersects(A,B) –> A和B是否相交
ST_Crosses(A,B) –> A和B是否相交(相交部分不等于A或B)
ST_Disjoint(A,B) –> A和B是否不相交
ST_Overlaps(A,B)
ST_Touches(A,B)
ST_Contains(A,B) –> A是否包含B
ST_Within(A,B) –> A是否在B中
ST_IsValid(A)
ST_Validate(A)
ST_AsText(字段名) –> 以文本形式返回
ST_AsBinary(字段名) –> 以二进制形式返回
包含、覆盖、重叠三个方法不清楚具体的区别
注意:每个方法前的MBR、ST可要可不要,在mysql5.7.6之后,不带MBR、ST的方法开始弃用
- 查询在指定面中的点
sql
select * from test where MBRContains(ST_GeomFromText(‘Polygon((0 0,0 5,5 5,5 0,0 0))‘),point)
- 查询所有point点的x坐标
sql
SELECT ST_X(point) FROM test
原文:https://www.cnblogs.com/JMrLi/p/11550244.html