GetFaceByPoint — Findet eine Fläche, die einen bestimmten Punkt schneidet.
integer GetFaceByPoint(
varchar atopology, geometry apoint, float8 tol1)
;
Findet eine Fläche, die von einem Punkt referenziert wird, mit der angegebenen Toleranz.
Die Funktion sucht tatsächlich nach einer Fläche, die einen Kreis mit dem Punkt als Mittelpunkt und der Toleranz als Radius schneidet.
Wenn keine Fläche die angegebene Abfrageposition schneidet, wird 0 zurückgegeben (Universalfläche).
Wenn mehr als eine Fläche den Abfrageort schneidet, wird eine Ausnahme ausgelöst.
Verfügbarkeit: 2.0.0
Verbessert: 3.2.0 effizientere Implementierung und klarerer Vertrag, funktioniert nicht mehr mit ungültigen Topologien.
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
GetFaceContainingPoint, AddFace, GetNodeByPoint, GetEdgeByPoint