2.8. SQL 空间操作

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

2.8.1. 1. 所有几何对象支持

几何对象构造 说明
ST_WKTToSQL 从 WKT 构造几何对象
ST_WKBToSQL 从 WKB 构造几何对象
几何信息获取 说明
ST_AsText 获取 WKT 描述
ST_AsBinary 获取 WKB 描述
ST_Dimension 获取维数
ST_GeometryType 获取几何类型
ST_SRID 获取空间参考 ID
ST_IsEmpty 是否为空
ST_IsSimple 是否是简单对象
ST_Boundary 获取边界
ST_Envelope 获取矩形范围
空间关系判断 说明
ST_Equals image0
ST_Disjoint image1
ST_Intersects

任意部分有相交,等价于判断空间关系的 DE-9IM 字符串表达是否是以下之一:

T********

*T*******

***T*****

****T****

ST_Touches image2
ST_Crosses image3
ST_Within image4
ST_Contains image5
ST_Overlaps image6
ST_Relate 判断是否满足 DE-9IM 字符串表达关系
距离计算 说明
ST_Distance 几何对象间的最短距离
几何运算 说明
ST_Intersection image7
ST_Difference image8
ST_Union image9
ST_SymDifference image10
ST_Buffer image11
ST_ConvexHull image12

2.8.2. 2. Point 对象支持

SQL 操作 说明
ST_X 获取 X 值
ST_Y 获取 Y 值
ST_Z 获取 Z 值
ST_M 获取 M 值

2.8.3. 3. Curve 对象支持

SQL 操作 说明
ST_StartPoint 获取起始点
ST_EndPoint 获取终点
ST_IsRing 是否是环
ST_Length 获取长度

2.8.4. 4. LineString 对象支持

SQL 操作 说明
ST_NumPoints 节点数
ST_PointN 获取第 n 个节点

2.8.5. 5. Surface 对象支持

SQL 操作 说明
ST_Centroid 获取中心点
ST_PointOnSurface 获取面上一点
ST_Area 获取面积

2.8.6. 6. Polygon 对象支持

SQL 操作 说明
ST_ExteriorRing 获取外环
ST_NumInteriorRing 获取内环数
ST_InteriorRingN 获取第 n 个内环

2.8.7. 7. GeomCollection 对象支持

SQL 操作 说明
ST_NumGeometries 获取几何对象数
ST_GeometryN 获取第 n 个几何对象

2.8.8. 8. MultiCurve 对象支持

SQL 操作 说明
ST_IsClosed 是否闭合
ST_Length 获取长度

2.8.9. 9. MultiSurface 对象支持

SQL 操作 说明
ST_Centroid 获取中心点
ST_PointOnSurface 获取面上一点
ST_Area 获取面积