GetEdgeByPoint — Findet die edge-id einer Kante die einen gegebenen Punkt schneidet.
bigint 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 use tolerance > 0 und es gibt mehr als eine Kante in der Nähe des Punktes dann eine Ausnahme ausgelöst wird.
|
|
|
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