2012-09-17 42 views
1

我有以下型号:聚集在GeoDjango内置查询

from django.contrib.gis.db import models as geomodels 

class Shop(models.Model): 
    objects = geomodels.GeoManager() 
    name = models.CharField(max_length = 64) 

class ShopOutlets(models.Model): 
    objects = geomodels.GeoManager() 
    shop = models.ForeignKey(Shop) 
    location = geomodels.PointField(srid = 4326, blank = True, null = True) 

我所试图做的是找到自己最亲近的出口订单(不同的)商店到指定的点。

我已经试过这样:

Shop.objects.annotate(dist = Min('shopoutlet__location')) 

,但它实际上并没有给我指定一个中心点的选项。任何想法如何做到这一点?

在此先感谢

回答

1

我想你想得到两点之间的距离。

如果你想要这个,只是做:

ShopOutlets.objects.distance(point).order_by('distance') 

The distance method将计算你的对象之间的距离,以给定的点,并将把距离ATTR在你的对象动态。