OGC-SQL 空间操作

以 SQL/MM 定义为例,在 SFS 中规定了以下的操作。

  • 所有几何对象支持
几何对象构造 说明
ST_WKTToSQL 从 WKT 构造几何对象
ST_WKBToSQL 从 WKB 构造几何对象
  • 几何信息获取
几何信息获取 说明
ST_AsText(geometry) 获取 WKT 描述
ST_AsBinary(geometry) 获取 WKB 描述
ST_Dimension(geometry) 获取维数
ST_GeometryType(geometry) 获取几何类型
ST_SRID(geometry) 获取空间参考 ID
ST_IsEmpty(geometry) 是否为空
ST_IsSimple(geometry) 判断几何对象是否不包含特殊点(比如自相交)
ST_Boundary(geometry) 获取边界
ST_Envelope(geometry)  获取矩形范围
ST_IsClosed(geometry)  判断几何对象是否闭合
ST_IsRing(geometry)  判断曲线是否闭合并且不包含特殊点
ST_NumGeometries(geometry)  获取多几何对象中的对象个数
ST_GeometryN(geometry,int)  获取多几何对象中第N个对象 
ST_NumPoints(geometry)  获取几何对象中的点个数
ST_PointN(geometry,integer) 获取几何对象的第N个点
ST_ExteriorRing(geometry)  获取多边形的外边缘
ST_NumInteriorRings(geometry)  获取多边形内边界个数
ST_NumInteriorRing(geometry)  获取多边形内边界个数
ST_InteriorRingN(geometry,integer)  获取多边形的第N个内边界
ST_EndPoint(geometry)  获取线的终点
ST_StartPoint(geometry)  获取线的起始点
GeometryType(geometry) 获取几何对象的类型
ST_GeometryType(geometry)  获取几何对象的类型,但是不检查M值,即POINTM对象会被判断为point
ST_X(geometry) 获取点的X坐标
 ST_Y(geometry) 获取点的Y坐标
ST_Z(geometry) 获取点的Z坐标 
ST_M(geometry) 获取点的M值
  • 空间关系判断
空间关系判断 说明
ST_Equals(geometry A,
geometry B)
用于测试两个图形的空间相等性。如果两个相同类型的几何图形具有相同的x、y坐标值,即如果第二个图形与第一个图形的空间形状与位置相等(空间相等性),则ST_Equals()返回TRUE。
ST_Intersects(geometry A, geometry B) 用于测试几何图形内部是否相交。
如果两个图形有相同的空间部分,即如果它们的边界或内部相交,则ST_Intersects(geometry A, geometry B)返回TRUE。
ST_Disjoint(geometry A , geometry B) 如果两个几何图形没有相交的部分,则它们不相交,反之亦然。
ST_Overlaps(geometry A, geometry B) 比较两个相同维度的几何图形,如果它们的结果集与两个源几何图形都不同但具有相同维度,则返回TRUE(其实就是判断两个几何图形是否叠置)。
ST_Crosses(geometry, geometry) 判断两个几何对象是否互相穿过
ST_Touches(geometry A, geometry B) 测试两个几何图形是否在它们的边界上接触,但在它们的内部不相交。如果两个几何图形的边界相交,或者只有一个几何图形的内部与另一个几何图形的边界相交,则ST_Touches(geometry A, geometry B)将返回TRUE。
ST_Within(geometry A, geometry B) 如果第一个几何图形完全位于第二个几何图形内,则ST_Within(geometry A, geometry B)返回TRUE
ST_Contains(geometry A, geometry B) 如果第二个几何图形B完全包含在第一个几何图形A内,则ST_Contains(geometry A, geometry B)返回TRUE。
ST_Distance(geometry A, geometry B) 计算两个几何图形之间的最短距离,并将其作为浮点数返回。
ST_DWithin(geometry A, geometry B, radius) 两个几何图形之间的距离是否在某个范围之内
ST_Relate(geometry, geometry) 获得两个几何对象的关系(DE-9IM矩阵)
ST_Relate(geometry, geometry, intersectionPatternMatrix)  通过DE-9IM 矩阵判断两个几何对象的关系是否成立
  • 几何运算
几何运算 说明
ST_Intersection(geometry, geometry)  获取两个几何对象相交的部分
ST_Difference(geometry A, geometry B)  从A去除和B相交的部分后返回
ST_Union(geometryset) 返回一系列几何对象的合并结果
ST_Union(geometry, geometry)  返回两个几何对象的合并结果
ST_MemUnion(geometry set) 用较少的内存和较长的时间完成合并操作,结果和ST_Union相同
ST_SymDifference(geometry A, geometry B)  获取两个几何对象不相交的部分
ST_Centroid(geometry)  获取几何对象的中心
ST_Area(geometry) 面积量测
ST_Length(geometry) 长度量测
ST_PointOnSurface(geometry)  返回曲面上的一个点
ST_Boundary(geometry) 获取边界
ST_Buffer(geometry, double, [integer])  获取缓冲后的几何对象
ST_ConvexHull(geometry) 获取多几何对象的外接对象
ST_Shift_Longitude(geometry)  将经度小于0的值加360使所有经度值在0-360间

版权声明:
作者:Gomo
链接:https://www.develophm.com/index.php/sql-%e7%a9%ba%e9%97%b4%e6%93%8d%e4%bd%9c/1534/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>