GetNodeByPoint — Busca el identificador de nodo de un nodo en un punto de ubicación.
bigint GetNodeByPoint(varchar atopology, geometry apoint, float8 tol1);
Recupera el identificador de un nodo en un punto de ubicación.
La función devuelve un entero (identificador de nodo) dada una topología, un POINT y una tolerancia. Si la tolerancia es 0 significa intersección exacta, de lo contrario recupera el nodo de un intervalo.
Si apoint no intersecta un nodo, devuelve 0 (cero).
If use tolerance > 0 and there is more than one node near the point then an exception is thrown.
|
|
|
Si la tolerancia = 0, la función utiliza ST_Intersects de otra manera utiliza ST_DWithin. |
Realizado por el módulo GEOS.
Disponibilidad: 2.0.0
Estos ejemplos utilizan los bordes que hemos creado en AddEdge
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