GetFaceByPoint — Recherche la face intersectant un point donné.
integer GetFaceByPoint(
varchar atopology, geometry apoint, float8 tol1)
;
Recherche une face référencée par un point, avec une tolérance donnée.
La fonction recherchera effectivement une face coupant un cercle dont le point est le centre et la tolérance le rayon.
Si aucune face n'intersecte l'emplacement de la requête, la valeur 0 est renvoyée (face universelle).
Si plus d'une face croise l'emplacement de la requête, une exception est levée.
Disponibilité : 2.0.0
Amélioration : 3.2.0 mise en œuvre plus efficace et contrat plus clair, arrêt du fonctionnement avec des topologies non valides.
SELECT topology.GetFaceByPoint('ma_topo',geom, 10) As with1mtol, topology.GetFaceByPoint('ma_topo',geom,0) As withnotol FROM ST_GeomFromEWKT('POINT(234604.6 899382.0)') As geom; with1mtol | withnotol -----------+----------- 1 | 0
SELECT topology.GetFaceByPoint('ma_topo',geom, 1) As nearnode FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom; -- get error -- ERROR: Two or more faces found