1

私は次のモデルを持っています:

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'))

しかし、実際には中心点を指定するオプションはありません。これを行う方法についてのアイデアはありますか?

前もって感謝します

4

1 に答える 1

1

2点間の距離を取得したいと思います。

これが必要な場合は、次のようにします。

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

距離メソッドは、指定されたポイントまでのオブジェクト間の距離を計算し、距離属性をオブジェクトに動的に配置します。

于 2012-12-18T23:06:40.920 に答える