gpt4 book ai didi

django - 筛选 PointField 的查询集字段以查找特定距离范围内的项目不正确

转载 作者:行者123 更新时间:2023-12-03 01:27:42 27 4
gpt4 key购买 nike

我想过滤查询集中特定范围内的项目。这就是我的模型的样子

class modelEmployee(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
location = models.PointField(srid=4326,max_length=40, blank=True,null=True)
objects = GeoManager()

现在这就是我运行过滤器命令的方式。退回 90 英里特定范围内的元素。

qset = modelEmployee.objects.filter(location__distance_lte=(someLocation, D(mi=90)))

结果返回一个项目,其距离实际上是 223.732 英里,这是它不应该返回的。

这是两个项目的位置

location A - lat: 47.628641 and long: -117.402997

location B - lat: 47.618337 and long: -122.205341

两者之间的距离实际上是 223.732 英里。一定是我过滤错了。关于我可能出错的地方有什么建议吗?

最佳答案

来自文档 geo spatial query你应该使用dwithin

您的示例应该像这样使用它:

qset = modelEmployee.objects.filter(location__dwithin=(someLocation, D(mi=90)))

关于django - 筛选 PointField 的查询集字段以查找特定距离范围内的项目不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52606653/

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