Več

PostGIS: najbližji poligon do točke

PostGIS: najbližji poligon do točke


Imam .shp datoteko poligonov in enojno (točkovno) lokacijo.

Kako lahko dobim najbližji poligon na tej lokaciji?


Več načinov za to. Eno je najti razdaljo in vrstni red naraščajoče.

IZBERI geom IZ polys, točk WHERE points.gid = 1 IN ST_DWithin (poly.geom, points.geom, 1000) ORDER BY ST_Distance (a.geom, b.geom) LIMIT 1;

Dodal sem klic ST_DWithin, da pokažem, kako lahko omejite število kandidatov (uporabil bo indeks.)


Z ST_ClosestPoint vrnem najbližjo točko iz vsakega poligona, nato izračunam najmanjšo razdaljo

SELECT foo. * From (SELECT min (st_distance (a.geom, ST_ClosestPoint (b.geom, a.geom))) from polyg a, point b) foo

Poglej si posnetek: Spatial Relationships using PostGIS. PostGIS Baby Steps