sql >> Base de Datos >  >> RDS >> PostgreSQL

K-Consulta de vecino más cercano en PostGIS

Desde finales de septiembre de 2011, PostGIS admite consultas de vecinos más cercanos indexadas a través de operadores especiales que se pueden utilizar en la cláusula ORDER BY:

SELECT name, gid
FROM geonames
ORDER BY geom <-> st_setsrid(st_makepoint(-90,40),4326)
LIMIT 10;

...devolverá los 10 objetos cuyas geom es el -90,40 más cercano de forma escalable. En esa publicación del anuncio hay algunos detalles más (opciones y advertencias) y el uso de los operadores <-> y <#> ahora también está documentado en la referencia oficial de PostGIS 2.0. (La principal diferencia entre los dos es que <-> compara los centroides de forma y <#> compara sus límites:no hay diferencia para los puntos, otras formas eligen lo que es apropiado para sus consultas).