名称

GetNodeByPoint — 查找位于点位置的节点的节点 ID。

概要

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

描述

检索位于点位置的节点的 ID。

该函数返回一个整数(节点 ID),给定一个拓扑结构、一个 POINT 和一个容差。如果容差 = 0 表示精确相交,否则从一个区间检索节点。

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

如果使用容差 > 0 并且在该点附近有多个节点,则会抛出异常。

[Note]

如果容差 = 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