GetNodeByPoint — Findet zu der Lage eines Punktes die node-id eines Knotens.
bigint 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 use tolerance > 0 und es gibt mehr als einen Knoten in der Nähe des Punktes dann eine Ausnahme geworfen 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.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