- 类别:
ST_SIMPLIFY¶
给定一个表示直线或多边形的 GEOGRAPHY 或 GEOMETRY 输入对象,返回该对象的简化近似对象。该函数会识别并移除选中的顶点,从而生成一个顶点数量更少的类似对象。
例如,如果输入对象是具有 50 个顶点的多边形,则 ST_SIMPLIFY 可以返回只有其中 20 个顶点的更简单的多边形。
在简化对象时,仅当某个顶点与因移除该顶点而产生的边之间的距离在指定的容差范围内,函数才会移除该顶点。
语法¶
实参¶
必填:
geography_expression. OR .geometry_expression要简化的 GEOGRAPHY 或 GEOMETRY 对象。
根据 GEOMETRY 或 GEOGRAPHY 对象的类型,ST_SIMPLIFY 具有以下作用:
对象类型
ST_SIMPLIFY 的作用
LineString、MultiLineString、多边形或 MultiPolygon
ST_SIMPLIFY 应用简化算法
点或 MultiPoint
ST_SIMPLIFY 没有任何作用。
GeometryCollection 或 FeatureCollection
对于 GEOGRAPHY 对象,ST_SIMPLIFY 将简化算法应用于集合中的每个对象。. . 对于 GEOMETRY 对象,ST_SIMPLIFY 不支持这些类型。
tolerance简化算法使用的最大距离。根据对象的数据类型,操作使用以下单位:
GEOGRAPHY - 距离以米为单位解释。
GEOMETRY - 距离以物体的 SRID(空间参照系标识符)的单位进行解释。例如,对于 EPSG:4326,距离以度为单位解释,对于许多投影 SRIDs,以米为单位,对于某些局部 SRIDs,以英尺为单位。
如果距离超过某顶点的此容差范围,则 ST_SIMPLIFY 将该顶点保留在简化对象中。
可选:
preserve_collapsed(仅适用于 GEOGRAPHY 对象)如果
TRUE,则保留在给定公差的情况下太小的对象。例如,当
preserve_collapsed为FALSE且tolerance为10(米)时,1 米长的线在简化对象中会缩小为一个点。当preserve_collapsed为TRUE时,该线会保留在简化对象中。默认:
FALSE。
返回¶
该函数返回类型 GEOGRAPHY 或 GEOMETRY 的值。
示例¶
GEOGRAPHY 示例¶
本部分中的示例使用 WKT 格式显示输出:
以下示例会返回一个简化的 LineString,其所含顶点少于原来的 LineString。在简化对象中,如果某个顶点与替换该顶点的边之间的距离小于 1000 米,则忽略该顶点。
GEOMETRY 示例¶
本部分中的示例使用 WKT 格式显示输出:
以下示例会返回一个简化的 LineString,其所含顶点少于原来的 LineString。在简化对象中,如果某个顶点与替换该顶点的边之间的距离小于 500 米,则忽略该顶点。
以下示例将具有 36 个初始顶点的椭圆简化为具有 16 或 10 个顶点的形状,具体取决于 tolerance 实参: