GetFaceByPoint
Name
GetFaceByPoint — Find the face-id of a face that intersects a given point
Synopsis
integer
GetFaceByPoint
(
varchar
atopology
, geometry
apoint
, float8
tol
)
;
Description
Retrieve the id of a face that intersects a Point.
The function returns an integer (id-face) given a topology, a POINT and a tolerance. If tolerance = 0 then the point has to intersect the face.
If the point doesn't intersect a face, returns 0 (zero).
If use tolerance > 0 and there is more than one face near the point then an exception is thrown.
If tolerance = 0, the function uses ST_Intersects otherwise uses ST_DWithin. |
Availability: 2.0.0 - requires GEOS >= 3.3.0.
Examples
These examples use edges faces created in AddFace
SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology.GetFaceByPoint('ma_topo',geom,0) As withnotol FROM ST_GeomFromEWKT('POINT(234604.6 899382.0)') As geom; with1mtol | withnotol -----------+----------- 1 | 0
SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom; -- get error -- ERROR: Two or more faces found