名称

GetEdgeByPoint — 查找与给定点相交的边的边 ID。

概要

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

描述

检索与点相交的边的 ID。

该函数返回一个整数(边 ID),给定一个拓扑、一个点和一个容差。如果容差 = 0,则点必须与边相交。

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

如果使用容差 > 0 并且点附近有多条边,则会抛出异常。

[Note]

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

由 GEOS 模块执行。

可用性:2.0.0

示例

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

SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As with1mtol, topology.GetEdgeByPoint('ma_topo',geom,0) As withnotol
FROM ST_GeomFromEWKT('SRID=26986;POINT(227622.6 893843)') As geom;
 with1mtol | withnotol
-----------+-----------
         2 |         0
SELECT topology.GetEdgeByPoint('ma_topo',geom, 1) As nearnode
FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom;

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

另请参阅

AddEdge, GetNodeByPoint, GetFaceByPoint