PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как мога да поискам всичките си данни в рамките на разстояние от 5 метра?

Като цяло най-добрата функция на PostGIS за такава заявка е ST_DWithin() :

напр. всички клиенти, които живеят в рамките на 1000 метра от магазин №1:

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

ST_DWithin ще използва пространствения индекс които трябваше да създадете и следователно да превъзхождат ST_Distance.

В Django изглежда има съответен филтър, наречен dwithin :

D(m=5) връща дистанционен обект с дължина 5 метра

geom е геометрията, от която искате да изчислите разстоянията до обекти с пощенски код

dwithin() е използваната функция

poly е геометричният атрибут на обекти с пощенски код

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. Postgres:командата vacuum не почиства мъртвите кортежи

  2. postgresql индекс на низова колона

  3. PostgreSQL Кръстосана заявка

  4. Избройте всички таблици в postgresql information_schema

  5. Получете точен резултат за делене на числа