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
二维码
共有 0 条评论