Name

GetEdgeByPoint — Findet die edge-id einer Kante die einen gegebenen Punkt schneidet.

Synopsis

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

Beschreibung

Erfasst die ID einer Kante, die einen Punkt schneidet

Die Funktion gibt eine Ganzzahl (id-edge) für eine Topologie, einen POINT und eine Toleranz aus. Wenn tolerance = 0, dann muss der Punkt die Kante schneiden.

Wenn apoint keine Kante schneidet, wird 0 (Null) zurückgegeben.

Wenn use tolerance > 0 und es gibt mehr als eine Kante in der Nähe des Punktes dann eine Ausnahme ausgelöst wird.

[Note]

Wenn tolerance = 0, wird von der Funktion ST_Intersects angewendet, ansonsten ST_DWithin.

Wird vom GEOS Modul ausgeführt

Verfügbarkeit: 2.0.0

Beispiele

Die folgenden Beispiele benutzen die Kanten, die wir in AddEdge erzeugt haben

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