Name

GetNodeByPoint — Findet zu der Lage eines Punktes die node-id eines Knotens.

Synopsis

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

Beschreibung

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.

[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.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