PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zapytanie K-najbliższego sąsiada w PostGIS

Od końca września 2011 r. PostGIS obsługuje indeksowane zapytania najbliższych sąsiadów za pomocą specjalnych operatorów, których można używać w klauzuli ORDER BY:

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

...zwróci 10 obiektów, których geom jest najbliżej -90,40 w sposób skalowalny. Kilka dodatkowych szczegółów (opcji i zastrzeżeń) znajduje się w tym poście z ogłoszeniem, a użycie operatorów <-> i <#> jest teraz udokumentowane w oficjalnym dokumencie PostGIS 2.0. (Główna różnica między nimi polega na tym, że <-> porównuje centroidy kształtu i <#> porównuje ich granice — bez różnicy dla punktów, inne kształty wybierają to, co jest odpowiednie dla Twoich zapytań).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Typecast string to integer

  2. Głowy w chmurze na CHAR(10)

  3. Funkcje okna:last_value(ORDER BY ... ASC) to samo co last_value(ORDER BY ... DESC)

  4. Jak działa current_date w PostgreSQL

  5. Jak pracować z bazami danych PostgreSQL