使用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)