最近在做查询指定经纬度范围的数据;问题不知如何下手,于是网上找了点资料,其中有些不懂的地方希望大家能给点想法!

问题是这样的:

sql语句查询经纬度范围

指定一个经纬度,给定一个范围值(单位:千米),查出在经纬度周围这个范围内的数据。

经度:113.914619

纬度:22.50128

范围:2km

longitude为数据表经度字段

latitude为数据表纬度字段

SQL在mysql下测试通过,其他数据库可能需要修改

SQL语句如下:

select * from location where sqrt( ( ((113.914619-longitude)*PI()*12656*cos(((22.50128+latitude)/2)*PI()/180)/180) * ((113.914619-longitude)*PI()*12656*cos (((22.50128+latitude)/2)*PI()/180)/180) ) + ( ((22.50128-latitude)*PI()*12656/180) * ((22.50128-latitude)*PI()*12656/180) ) )<2

其中的12656是啥意思啊,怎么来的呀?如果有大神整体解释下那就更好了!!

可以参考一下geohash,效率应该更高

http://www.cnblogs.com/LBSer/p/3310455.html

算一下球面两点距离就知道了,就是一个公式

d(x1,y1,x2,y2)=r*arccos(sin(x1)*sin(x2)+cos(x1)*cos(x2)*cos(y1-y2))

加上距离的换算单位,自己就能知道那个值了

从语义来看应该是

1经度(纬度)= 12656米

。不过这只是近似值,尤其对经度来说,纬度越高的地方这个值越小,极端情况就是在极点为0。

这条sql的效率极低,需要扫描整张表。可以考虑使用空间索引,MySQL的话,可以了解下

MySQL Spatial

。MongoDB对空间数据的支持比较好,内置了

GeoHash

功能。

当初看了这篇文章,问题就解决了 http://tech.meituan.com/lucene-distance….

mysql经纬度查范围内_sql语句查询经纬度范围相关推荐

  1. MySQL备份恢复之mysqldump备份_SQL语句模式

    mysqldump备份_SQL语句模式 mysql备份类型 1.分为冷备和热备 冷备就是在数据库shutdown以后进行备份 热备就是在数据库open进行备份 2.又可以分为物理备份和逻辑备份 (1 ...

  2. MySQL怎么查游戏内邮件附件_怎么查询游戏mysql账号密码

    怎么查看mysql数据库的用户名和密码? 如何查看mysql数据库的登录名和密码: 通过Windows的服务管理器查看.首先安装Maki5.服务端 "开始"-"运行&qu ...

  3. mysql如何查询前几天_sql语句查询mysql怎么取前几天的数据

    满意答案 hong1992416 2015.03.24 采纳率:54%    等级:12 已帮助:12747人 一.当天或当日插入的数据: 1.传统对比判断:SELECT * FROM `t` WHE ...

  4. mysql 年龄段分组_SQL语句查询年龄分段分组查询

    此情况用于数据库中没有"年龄"这个字段,只有"出生日期"这个字段.先计算出"年龄",在分组查询. 1.SELECT *, ROUND(DAT ...

  5. MySQL查询被选修的课程_sql语句查询没有被学生选修过的课程(即课程号没有在sc表中出现过)的名称....

    展开全部 1.创建学生及课程表, create table test_student(stu_id number, class_id number); create table test_class( ...

  6. mysql如何查询成绩前5名_sql 语句查询 前5名后5名的成绩

    蝴蝶不菲 两种办法:分别求最大和最小,然后union allselect * from(select * from table order by 成绩) where rownum<=5union ...

  7. sql语句查询经纬度范围

    指定一个经纬度,给定一个范围值(单位:千米),查出在经纬度周围这个范围内的数据. 经度:113.914619 纬度:22.50128 范围:2km longitude为数据表经度字段 latitude ...

  8. mysql 时差查了13小时_MySQL查询检查如何获取时差

    让我们首先创建一个表-mysql> create table DemoTable1570 -> ( -> ArrivalTime datetime -> ); 使用插入命令在表 ...

  9. 阿里云 mysql 强制查主库_mysql数据库权限查询

    mysql数据库权限查询 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Servi ...

  10. sql语句查询经纬度范围 Oracle

    指定一个经纬度,给定一个范围值(单位:千米),查出在经纬度周围这个范围内的数据.  经度:23.33  纬度:34.66  范围:2000km  SA_LONGITUDE为数据表经度字段  SA_LA ...

最新文章

  1. 网络推广外包专员浅析为什么说企业网站都需要网络推广外包?
  2. 学python能赚什么外卖-python实现外卖信息管理系统
  3. linux桌面文件夹改图标,Linux 给桌面程序设置个性化图标
  4. 神策数据王琛:用户画像实践之神策标签生产引擎架构
  5. linux数据同步技术比较,linux下实现web数据同步的四种方式(性能比较)教程.docx
  6. java不朽神迹,不朽的神迹 Eternal Legacy HD v1.0.8
  7. php安装文档,PHP - Manual: 安装 (官方文档)
  8. 深度学习的实用层面 —— 1.4 正则化
  9. grails安装部署_grails中文版
  10. linux rpm安装zabbix,CentOS 7上安装Zabbix Server 3.0 图文详解
  11. 南邮ctf mysql_南邮ctf知识点汇总 - Crypto篇
  12. matlab的区域操作,matlab的操作()
  13. linux删除进程文件,Linux如何查找或删除正在使用某文件的进程
  14. MMDetection2.XX-Necks之FPN源码解析
  15. 区块链在图书馆中应用
  16. 任何辨别你的计算机中了威金病毒
  17. [视频]AI 机器学习 深度学习 视频教程汇总
  18. 高级着色语言HLSL入门
  19. ps图层混合模式的含义
  20. Paypal支付/回调/退款

热门文章

  1. Lync Server 2013 标准版的DNS和端口要求
  2. Ajax中readyState和status
  3. 维京小队3dm中文版|维京小队中文免安装版
  4. 笔试题??智商题??
  5. Zemax学习笔记——序列模式点光源与平行光设置
  6. ODL安装、ODL与mininet连接可视化显示拓扑
  7. OkHttp3 (二)——请求
  8. 基于机器学习的笑脸检测
  9. 机票预订系统活动图_机票预订系统程序实施方案说明书模板(面向对象)
  10. JS 正则表达式 数字和小数点 非负数 保留两位小数点