GetEdgeByPoint — Findet die edge-id einer Kante die einen gegebenen Punkt schneidet.
integer GetEdgeByPoint(
varchar atopology, geometry apoint, float8 tol1)
;
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 eine tolerance > 0 angegeben ist und mehr als eine Kante in diesem Bereich existiert, wird eine Fehlermeldung ausgegeben.
![]() | |
Wenn tolerance = 0, wird von der Funktion ST_Intersects angewendet, ansonsten ST_DWithin. |
Wird vom GEOS Modul ausgeführt
Verfügbarkeit: 2.0.0
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