sql >> Databasteknik >  >> RDS >> PostgreSQL

K-Nearest Neighbor Query i PostGIS

Sedan slutet av september 2011 har PostGIS stödt indexerade frågor om närmaste granne via en speciell operatör som kan användas i ORDER BY-satsen:

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

... returnerar de 10 objekt vars geom är närmast -90,40 på ett skalbart sätt. Några fler detaljer (alternativ och varningar) finns i det meddelandeinlägget och användningen av <-> och <#>-operatörerna är nu också dokumenterad i den officiella PostGIS 2.0-referensen. (Den största skillnaden mellan de två är att <-> jämför formens centroider och <#> jämför deras gränser — ingen skillnad för poäng, andra former väljer vad som är lämpligt för dina frågor.)



  1. Hur man släpper eller tar bort alla utlösare från en databas i SQL Server

  2. PostgreSQL Skapa index

  3. Varför har heltal i databasradtuppel ett 'L'-suffix?

  4. PostgreSQL på väg upp:2018 Postgres fynd och 2019 trender