GetNodeByPoint — Findet zu der Lage eines Punktes die node-id eines Knotens.
integer GetNodeByPoint(
varchar atopology, geometry apoint, float8 tol1)
;
Erfasst zu der Lage eines Punktes die ID eines Knotens.
Diese Funktion gibt für eine Topologie, einen POINT und eine Toleranz eine Ganzzahl (id-node) aus. Tolerance = 0 bedeutet exakte Überschneidung, ansonsten wird der Knoten in einem bestimmten Abstand gesucht.
Wenn apoint
keinen Knoten schneidet, wird 0 (Null) zurückgegeben.
Wenn eine tolerance > 0 angegeben ist und mehr als ein Knoten in dem Bereich des Punktes 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.GetNodeByPoint('ma_topo',geom, 1) As nearnode FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom; nearnode ---------- 2
SELECT topology.GetNodeByPoint('ma_topo',geom, 1000) As too_much_tolerance FROM ST_GeomFromEWKT('SRID=26986;POINT(227591.9 893900.4)') As geom; ----get error-- ERROR: Two or more nodes found