Django按距离排序

Django按距离排序,第1张

Django按距离排序

注意:请检查下面的cleder答案,其中提到了Django版本中的弃用问题(距离->批注)。

首先,最好使一个点字段而不是使lat和lnt分开:

from django.contrib.gis.db import modelslocation = models.PointField(null=False, blank=False, srid=4326, verbose_name='Location')

然后,您可以像这样过滤它:

from django.contrib.gis.geos import Pointfrom django.contrib.gis.measure import Ddistance = 2000 ref_location = Point(1.232433, 1.2323232)res = YourModel.objects.filter(    location__distance_lte=(        ref_location,        D(m=distance)    )).distance(    ref_location).order_by(    'distance')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存