Solución:
Varias formas de hacer esto. Uno es encontrar la distancia y el orden ascendente.
SELECT 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;
Agregué la llamada ST_DWithin para mostrar cómo puede limitar la cantidad de candidatos (hará uso del índice).
Utilizo ST_ClosestPoint para devolver el punto más cercano de cada polígono, luego calculo la distancia mínima
SELECT foo.* from
(SELECT min(st_distance(a.geom,ST_ClosestPoint(b.geom,a.geom))) from polyg a,point b) foo
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)