PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come posso interrogare tutti i miei dati entro una distanza di 5 metri?

In generale, la migliore funzione PostGIS per una tale query è ST_DWithin() :

per esempio. tutti i clienti che risiedono entro 1000 metri dal negozio n. 1:

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

ST_DWithin utilizzerà l'indice spaziale che avresti dovuto creare e quindi superare ST_Distance.

In Django sembra esserci un filtro corrispondente chiamato dwithin :

D(m=5) restituisce un oggetto a distanza di 5 metri

geom è la geometria da cui vuoi calcolare le distanze dagli oggetti CAP

dwithin() è la funzione utilizzata

poly è l'attributo geometrico degli oggetti codice postale

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