Name

GetFaceByPoint — Findet eine Fläche, die einen bestimmten Punkt schneidet.

Übersicht

bigint GetFaceByPoint(varchar atopology, geometry apoint, float8 tol1);

Description

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.

Beispiele

Code
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;
Ausgabe von Rastern
with1mtol | withnotol
-----------+-----------
         1 |         0

This query errors because two or more faces are found.

Code
SELECT topology.GetFaceByPoint('ma_topo', geom, 1) As nearnode
FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom;
Ausgabe von Rastern
ERROR:  Two or more faces found