Namn

GetFaceByPoint — Hitta en yta som skär en given punkt.

Synopsis

bigint GetFaceByPoint(varchar atopology, geometry apoint, float8 tol1);

Beskrivning

Hittar en yta som refereras av en punkt, med given tolerans.

Funktionen letar effektivt efter en yta som skär en cirkel med punkten som centrum och toleransen som radie.

Om ingen yta korsar den angivna sökplatsen returneras 0 (universell yta).

Om mer än en yta korsar den plats där frågan ställs uppstår ett undantag.

Tillgänglighet: 2.0.0

Förbättrad: 3.2.0 effektivare implementering och tydligare kontrakt, slutar fungera med ogiltiga topologier.

Exempel

Kod
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;
Utdata
with1mtol | withnotol
-----------+-----------
         1 |         0

Den här frågan ger ett fel eftersom två eller fler ytor hittas.

Kod
SELECT topology.GetFaceByPoint('ma_topo', geom, 1) As nearnode
FROM ST_GeomFromEWKT('POINT(227591.9 893900.4)') As geom;
Utdata
ERROR:  Two or more faces found