使用Visvalingam-Whyatt算法设置Geometry对象中每个顶点的有效面积。有效面积存储为顶点的M值。
语法
geometry ST_SetEffectiveArea(geometry geomA , float threshold , integer setArea);
参数
参数名称 | 描述 |
---|---|
geomA | 目标Geometry对象。 |
threshold | 容差,默认为0。如果设置,将只返回面积大于等于容差的顶点。 |
setArea | 默认为1。 |
描述
- 指定容差后,此功能可用于服务器端简化。
- 不设置容差,可以使用它来快速简化图形。
- 该函数实际上只支持(Multi)Line、(Multi)Polygon和MultiPoint类型对象,但是你可以安全地对任何Geometry对象使用该函数。
- 由于简化操作是逐个对象进行的,因此您还可以将GeometryCollection应用于该函数。
- 输出的Geometry可能会丢失拓扑关系,也可能是无效的Geometry对象。
- 输出的Geometry对象将丢失原始的M值。
- 输出的Geometry对象可能会失去其简单性。
- 该函数支持3D对象,并且3D维度将影响结果。
示例
默认调用:
SELECT ST_AsText(ST_SetEffectiveArea('LINESTRING(0 0,1 1,2 2 )'::geometry));
st_astext
------------------------------------------------------
LINESTRING M (0 0 3.40282e+38,1 1 0,2 2 3.40282e+38)
(1 row)