merchant = Merchant.objects.filter(
is_enabled=True
).annotate(distance=ExpressionWrapper(6371 * 2 * ASin(
Sqrt(
Sin((Radians(F('latitude')) - Radians(latitude)) / 2)**2 +
Cos(Radians(latitude)) * Cos(Radians(F('latitude'))) * Sin(
(Radians(F('longitude')) - Radians(longitude)) / 2)**2)
),
output_field=FloatField())
).order_by('distance').first()
python根据经纬度从数据库查找最近的店铺
最新推荐文章于 2024-03-18 10:21:59 发布