gpt4 book ai didi

python - 如何在 Django REST API 中使用 GPS 位置?

转载 作者:行者123 更新时间:2023-11-29 12:08:37 26 4
gpt4 key购买 nike

我正在使用 Django 为餐厅搜索应用程序制作 REST API。我需要获取距我所在位置 X 米范围内的餐馆列表。我不确定如何将其存储在我的数据库中(我使用的是 PostgreSQL)以及如何检索该列表。

我在网上搜索了一些选项,发现 PostGIS 作为 Postgres 的扩展可以在 Django 中使用,但我仍然想听听您的一些建议。

谢谢

最佳答案

是的,您想在数据库中使用 PostGIS 扩展,并且 GeoDjango在您的应用中。

设置和配置完成后,在您的模型中使用 PointField。请注意,您现在想从 django.contrib.gis.db.models.Model 进行扩展。

from django.contrib.gis.db import models
from django.contrib.gis.geos import Point

class Restaurant(models.Model):
point = models.PointField()

Restaurant.objects.create(point=Point(lng, lat))

要查询您的餐厅,请使用您的纬度/经度创建一个 Point 对象(请注意,GEOS 采用 lng、纬度顺序的纬度/经度参数)。然后使用 gis D 测量进行距离查询。以下是 5000 米以内的餐厅查询:

from django.contrib.gis.geos import Point
from django.contrib.gis.measure import D

my_loc = Point(my_lng, my_lat)
Restaurant.objects.filter(point__distance_lte=(my_loc, D(m=5000))

关于python - 如何在 Django REST API 中使用 GPS 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48592648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com