Name

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

Synopsis

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

Beschreibung

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

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