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

Hvordan kan jeg forespørge alle mine data inden for en afstand af 5 meter?

Generelt er den bedste PostGIS-funktion til sådan en forespørgsel ST_DWithin() :

for eksempel. alle kunder, der bor inden for 1000 meter fra butik #1:

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

ST_DWithin vil bruge det rumlige indeks som du skulle have oprettet og derfor overgå ST_Distance.

I Django ser der ud til at være et tilsvarende filter kaldet dwithin :

D(m=5) returnerer et afstandsobjekt med en længde på 5 meter

geom er den geometri, hvorfra du vil beregne afstande til postnummerobjekter

dwithin() er den anvendte funktion

poly er geometriattributten for postnummerobjekter

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


  1. MySQL Tutorial:MySQL IN-sætning (avanceret)

  2. Inner Join Two Table, som samler varchar-felter

  3. Oracle pivoter rækker til kolonner

  4. Indstilling af Oracle-sprogparametre for DG4ODBC