Suite

PostGIS : polygone le plus proche du point

PostGIS : polygone le plus proche du point


J'ai un fichier .shp de polygones et un emplacement unique (point).

Comment puis-je récupérer le polygone le plus proche de cet emplacement unique ?


Plusieurs façons de le faire. L'une consiste à trouver la distance et l'ordre croissant.

SELECTIONNER geom FROM polys, points WHERE points.gid=1 AND ST_DWithin(poly.geom, points.geom, 1000) ORDER BY ST_Distance(a.geom, b.geom) LIMIT 1 ;

J'ai ajouté l'appel ST_DWithin pour montrer comment vous pourriez limiter le nombre de candidats (il utilisera l'index.)


J'utilise ST_ClosestPoint pour renvoyer le point le plus proche de chaque polygone, puis je calcule la distance minimale

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

Voir la vidéo: Formation en Web Mapping Open Source avec PostgreSQL u0026 PostGIS, GeoServer et OpenLayers