Python中文
首页
教程
问答
标签
搜索
登录
注册
基于Haversine的服务器仅在坐标完全匹配时才返回数据
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在Django中有一个位置感知服务器,它应该只在用户位于数据库项的给定半径内时返回数据。。我在python中发现了一个代码片段,它在网上就可以做到这一点(这里或其他地方,我真的记不起来了),当我在坐标为0,0的情况下对它进行测试时,它似乎是有效的,而当我设置两个不同的坐标时,它就不起作用了。我现在有一个数据库条目,它位于距离我当前位置300米以内,半径设置为10公里,但由于某种原因,服务器没有将结果返回给我。这段代码哪里出了问题,因为我完全不知道如何修复它,python新手和无助地失去了我的元素与haversine在5天内,我的项目是到期。 以下是基于haversine的查询的代码:</p> <pre><code>class StoreList(generics.ListAPIView): permission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly,) serializer_class = StoreSerializer def get_queryset(self): lat = self.request.query_params.get('lat', None) lon = self.request.query_params.get('lng', None) if lat and lon: lat = float(lat) lon = float(lon) # Haversine formula = https://en.wikipedia.org/wiki/Haversine_formula lat1 = math.radians(lat) # lat in radians lng1 = math.radians(lon) # lng in radians lat2 = math.asin(math.sin(lat1)*math.cos(distance/R) + math.cos(lat1)*math.sin(distance/R)*math.cos(bearing)) lng2 = lng1 + math.atan2(math.sin(bearing)*math.sin(distance/R)*math.cos(lat1), math.cos(distance/R)-math.sin(lat1)*math.sin(lat2)) lat2 = math.degrees(lat2) lng2 = math.degrees(lng2) return Store.objects.filter(latitude__gte=lat1, latitude__lte=lat2)\ .filter(longitude__gte=lng1, longitude__lte=lng2) </code></pre> <p>此图像显示已收到请求,坐标正确,但结果集仍然为空:(</p> <p><a href="https://i.stack.imgur.com/aBQz1.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/aBQz1.png" alt="Server out put"/></a></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>看起来你通过的是<code>lat1</code>和<code>lng1</code>弧度,但通过的是<code>lat2</code>和<code>lng2</code>度。(您将<code>lat1</code>和<code>lng1</code>转换为弧度,但从未将其更改回度。)</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何为此数据帧创建散点图?
4 回答
如何为此编写Django模板
8 回答
如何为此表达式编写正则表达式?
1 回答
如何为步进电机选择合适的值?
9 回答
如何为每15分钟间隔的日期时间行(在新列中)添加标签?
10 回答
如何为每一列创建汇总表?
6 回答
如何为每一组groupbyPandas做滚动“得到假人”
9 回答
如何为每一行分别运行函数(python)?
9 回答
如何为每一行生成一个随机数?
4 回答
如何为每一轮将pytorch模型输出存储到numpy
6 回答
如何为每个.py-fi文件创建单独的zip文件
7 回答
如何为每个<li class=”“><a>找到最近的上述同级<li>?
9 回答
如何为每个CSV列生成特定的文件?
4 回答
如何为每个csv文件使用read_csv,即使它是空的?PythonPandas
1 回答
如何为每个CSV文件创建单独的Pandas数据帧并给它们起有意义的名称?
4 回答
如何为每个datetime和每个id创建一行?
2 回答
如何为每个Django型号选择赋予不同的颜色
10 回答
如何为每个Django模型实例安排一个周期性的芹菜任务?
9 回答
如何为每个Django视图设置一个装饰器?
6 回答
如何为每个for循环迭代分配变量
4 回答