Name

GetNodeByPoint — 查找某个点位置处节点的节点 ID。

Synopsis

integer GetNodeByPoint(varchar atopology, geometry apoint, float8 tol1);

描述

检索某个点位置处的节点 id。

给定拓扑( topology)、POINT 和容差(tolerance),该函数返回一个整数(id-node)。 如果公差 = 0 表示精确交集,否则从区间中检索节点。

如果apoint不与节点相交,则返回 0(零)。

如果设置容差(tolerance)大于0,并且在某点附近存在多个节点(node),那么可能会引发异常。

[Note]

如果tolerance = 0,则该函数使用 ST_Intersects,否则使用 ST_DWithin。

这个函数是由 GEOS 模块执行的。

可用性: 2.0.0

示例

这些示例使用我们在 AddEdge中创建的边

SELECT topology.GetNodeByPoint('ma_topo',geom, 1) As nearnode
 FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;
  nearnode
----------
        2
 
SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance
 FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;

 ----get error--
 ERROR:  Two or more nodes found