参考网上计算距离的方法,用orm实现,代码如下

from django.db.models.functions import ACos, Sin, Cos# lat,long,km 是接口传进来的参数,经纬度和距离
# PI_VALUE是python math.pi, 由于数据库存的经纬度是decimal,所以PI_VALUE=decimal.Decimal(pi)
# REDIUS = decimal.Decimal(180)
# F('lat') F('long') 是使用数据库的值进行计算
XXModel.objects.annotate(distant=ACos(Sin((lat * PI_VALUE) / REDIUS) * Sin((F('lat') * PI_VALUE) / REDIUS)+ Cos((lat * PI_VALUE) / REDIUS) * Cos((F('lat') * PI_VALUE) / REDIUS) * Cos((long * PI_VALUE) / REDIUS - F('long') * PI_VALUE / REDIUS)) * 6380
).filter(distant__lte=km)

python代码计算两个经纬度距离

from math import acos, sin, cos, pidef haversine(lon1, lat1, lon2, lat2):  # 经度1,纬度1,经度2,纬度2 (十进制度数)return acos(sin(lat1 * pi / 180) * sin(lat2 * pi / 180) +cos(lat1 * pi / 180) * cos(lat2 * pi / 180) *cos(lon1 * pi / 180 - lon2 * pi / 180)) * 6380

django orm查询经纬度最近距离的数据相关推荐

  1. Django ORM 查询重复记录并显示

    文章目录 Django ORM 查询重复记录并显示 废话不谈,两横一竖开始 开始正题 下午继续vue Django ORM 查询重复记录并显示 写了简单的项目信息录入系统,让同事便于录入. 同事要求 ...

  2. python django orm查询集总结

    1 .什么是ORM (Object Relational Mapping ) 它的作用是在关系型数据库和业务实体对象做一个映射,我们在操作具体业务对象的时候就可以省去了和SQL语句打交道,只需要简单的 ...

  3. vue前端与Django后端查询一定时间段内的数据

    在开发过程中经常会遇到筛选查询之类的功能,比如查询某一个时间段内的数据而非所有数据. 这样我们就需要向后端发送时间段的参数,然后在后端处理查询. 这里以Django后端和vue前端的简单例子来记录大致 ...

  4. select_related与prefetch_related django ORM查询速度优化

    深入select_related与prefetch_related函数 原文:https://www.cnblogs.com/tuifeideyouran/p/4232028.html 在数据库有外键 ...

  5. Django ORM查询之外键、关系的反向引用

    关系本身就是相互的,只用在一个表中记录,而不是在有关系的两个表中都记录.所以外键.关系提供反向引用机制.当然,外键可以是多个表的外键,关系也可以与多个表有关系,所以反向引用必须显式指出关系对方表(然后 ...

  6. python爬虫 django搜索修改更新数据_一文搞懂Django数据库查询操作

    本文略长,读完约需十分钟.当做复习笔记效果更佳. 查询操作: 数据查询是数据库操作中一个非常重要的技术.查询一般就是使用filter.exclude以及get三个方法来实现.我们可以在调用这些方法的时 ...

  7. django orm级联_Django数据表关联关系映射(一对一、一对多、多对多)

    我们知道涉及到数据表之间的对应关系就会想到一对一.一对多.多对多,在学习 MySQL 数据库时表关系设计是需要重点掌握的知识.Django 中定义了三种关系类型的字段用来描述数据库表的关联关系:一对多 ...

  8. 067:【Django数据库】ORM查询条件详解-range

    [Django数据库]ORM查询条件详解-range range: 判断某个 field 的值是否在给定的区间中.示例代码如下: # views.py文件内容:from datetime import ...

  9. 数据库根据经纬度查询离我最近的数据

    之前很啥很天真地以为无非就是逐个计算距离,然后比较出来就行了,然后当碰到访问用户很多,而且数据库中经纬度信息很多的时候,计算量的迅速增长,能让服务器完全傻逼掉,还是老前辈的经验比我们丰富,给了我很大的 ...

  10. Mysql根据经纬度和距离检索符合条件的数据浅析

    假设已知坐标lat1,lng1,距离distance 方法1:定义数据库函数方法 DROP FUNCTION IF EXISTS `getDistance`; DELIMITER ;; CREATE ...

最新文章

  1. Sublime Text 2快捷键大全
  2. CSS3:FlexBox的详解
  3. 【WC2016】挑战NPC 【带花树】【建图】
  4. 浅析DDD(领域驱动设计)
  5. 95-10-055-启动-MetadataCache
  6. 从华为看企业高效产品的研发管理
  7. 为什么rocketmq的queue分为读写?_分布式发布订阅消息系统Kafka 为什么快
  8. 基于jquery响应式网站图片无限加载瀑布流布局
  9. Android多进程之Binder的意外死亡及权限校验
  10. [转] ubuntu开启SSH服务
  11. NPOI word中插入图片
  12. Python爬取第一电影天堂最新电影(5000多部)代码实例(一)
  13. The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
  14. 【自用错题集】C语言 基础错题整理
  15. windows安装hadoop教程,带截图
  16. vue-easy-print批量分页打印
  17. double转换为二进制
  18. vue动态配置嵌套页面(含iframe嵌套)可实现白天夜间皮肤切换
  19. 我是一个集技术和购物返利的机器人
  20. 浙江法院公开网文书PDF爬取

热门文章

  1. 保持积极向上的人生格言
  2. ECMAScript 语法
  3. 计算机求和怎样操作,电脑求和怎么操作
  4. webgl中顶点着色器的varying变量,使用方法。
  5. .Net框架设计(Yanlz+Unity+XR+C#+.Net+框架+框架设计+设计模式+工具可视化+SOA+立钻哥哥+==)
  6. nuxt整合vue-pdf插件和使用createLoadingTask方法进行分页
  7. 【高德地图API】Web地图开发系列(一)
  8. 转:创业者一手货:我是怎么在网上卖鱼的?
  9. openwrt 中 WiFi探针的三种实现办法
  10. html5中国产业联盟,中软国际联合发起HTML5+联盟为产业生态服务