名称

ST_Node — 对一组线进行节点化处理。

概要

geometry ST_Node(geometry geom);

描述

返回一个 (Multi)LineString,表示一组线串的完全节点化版本。节点化会保留所有的输入节点,并引入尽可能少的新节点。生成的线工作会进行溶解(删除重复的线)。

这是创建完全节点化线工作的良好方式,适用于作为 ST_Polygonize 的输入。

ST_UnaryUnion 也可用于节点化和溶解线工作。它提供一个选项来指定 gridSize,这可以提供更简单和更健壮的输出。另请参阅 ST_Union 获取聚合变体。

此函数支持 3D,并且不会删除 z 索引。

由 GEOS 模块执行。

可用性:2.0.0

变更:2.4.0 此函数内部使用 GEOSNode 而不是 GEOSUnaryUnion。这可能会导致生成的线串与 PostGIS < 2.4 相比具有不同的顺序和方向。

示例

节点化一个自相交的 3D LineString

SELECT ST_AsText(
        ST_Node('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'::geometry)
    ) As  output;
output
-----------
MULTILINESTRING Z ((0 0 0,5 5 4.5),(5 5 4.5,10 10 10,0 10 5,5 5 4.5),(5 5 4.5,10 0 3))
        

节点化两条共享共同线工作的 LineString。请注意,结果线工作已溶解。

SELECT ST_AsText(
        ST_Node('MULTILINESTRING ((2 5, 2 1, 7 1), (6 1, 4 1, 2 3, 2 5))'::geometry)
    ) As  output;
output
-----------
MULTILINESTRING((2 5,2 3),(2 3,2 1,4 1),(4 1,2 3),(4 1,6 1),(6 1,7 1))
        

另请参阅

ST_UnaryUnionST_Union