加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Django – 确定地理坐标是否在圆圈内

发布时间:2020-12-20 12:17:39 所属栏目:Python 来源:网络整理
导读:django是否有任何可以查看地理坐标(十进制纬度/长度)并确定是否在具有一定半径的圆圈内(比如100公里)? 我有某种类型的数据,每个都有一个纬度/经度,我想在数据库中进行搜索,以查看该数据是否位于具有指定半径大小的圆内. 我本可以自己编写一些可以处理这个问
django是否有任何可以查看地理坐标(十进制纬度/长度)并确定是否在具有一定半径的圆圈内(比如100公里)?

我有某种类型的数据,每个都有一个纬度/经度,我想在数据库中进行搜索,以查看该数据是否位于具有指定半径大小的圆内.

我本可以自己编写一些可以处理这个问题的东西但是如果有一些已经写好的东西可以解决这个问题我会徘徊.

解决方法

如果您不介意非常好的精度,可以在纯SQL中解决此问题.

您可以使用此特定SQL查询在GPS位置周围找到点:

# find point around :
latitude = 46.2037010192871
longitude = 5.20353984832764
query= "SELECT ID,NOM,LAT,LON,3956 * 2 * ASIN(SQRT(POWER(SIN((%s - LAT) * 0.0174532925 / 2),2) + COS(%s * 0.0174532925) * COS(LAT * 0.0174532925) * POWER(SIN((%s - LON) * 0.0174532925 / 2),2) )) as distance from POI  having distance < 50 ORDER BY distance ASC " % ( latitude,latitude,longitude)

这将为您提供50公里区域内所有gps记录的记录.

你可以在django中轻松插入:

from django.db import connection
cursor = connection.cursor()
cursor.execute( query )
rows = cursor.fetchall()

或者与django raw queries

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读