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

Jak mogę sprawdzić wszystkie moje dane w odległości do 5 metrów?

Ogólnie najlepszą funkcją PostGIS dla takiego zapytania jest ST_DWithin() :

np. wszyscy klienci mieszkający w promieniu 1000 metrów od sklepu nr 1:

SELECT customers.* 
FROM customers, shops
WHERE ST_DWithin(customers.the_geog, shops.the_geog, 1000)
  AND shop.id = 1

ST_DWithin użyje indeksu przestrzennego który powinieneś był stworzyć i dlatego przewyższa ST_Distance.

Wydaje się, że w Django istnieje odpowiedni filtr o nazwie w obrębie :

D(m=5) zwraca obiekt odległości o długości 5 metrów

geom to geometria, z której chcesz obliczyć odległości do obiektów kodu pocztowego

dwithin() jest używaną funkcją

poly jest atrybutem geometrii obiektów kodu pocztowego

z = Zipcode(code=77096, poly='POLYGON(( 10 10, 10 20, 20 20, 20 15, 10 10))')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Natywne zapytanie operatora JPA i JSON

  2. GroupingError:ERROR:kolumna musi występować w klauzuli GROUP BY lub być używana w funkcji agregującej

  3. Jak poradzić sobie z 'org.postgresql.util.PSQLException:Brak wartości parametru 1'?

  4. SQLAlchemy, PostgreSQL i array_agg:Jak wybrać elementy z array_agg?

  5. Dlaczego iteracja przez duży Django QuerySet zużywa ogromne ilości pamięci?