sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur kan jag fråga alla mina data inom ett avstånd av 5 meter?

I allmänhet är den bästa PostGIS-funktionen för en sådan fråga ST_DWithin() :

t.ex. alla kunder som bor inom 1000 meter från butik #1:

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

ST_DWithin kommer att använda det spatiala indexet som du borde ha skapat och därför överträffa ST_Distance.

I Django verkar det finnas ett motsvarande filter som heter dwithin :

D(m=5) returnerar ett avståndsobjekt med längden 5 meter

geom är den geometri från vilken du vill beräkna avstånd till postnummerobjekt

dwithin() är funktionen som används

poly är geometriattributet för Zipcode-objekt

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


  1. Enkel säkerhetskopiering och återställning för mysql-databas från Java

  2. Laravel 4-migreringar ger 1072-fel

  3. MySQL WHERE IN Query - BESTÄLLNING PER Match

  4. Kräver ODP.NET installation av Oracle Client