通过SQL语句计算两地的经纬度距离

  • 一、SQL案例
  • 二、SQL参数说明
  • 成功案例演示(对比腾讯地图):

一、SQL案例

select se.EnterpriseId,se.Code,se.Type,se.Name,se.UnifiedCode,se.Latitude,se.Longitude,se.Address,se.RedBlackList,se.StatusOfBiz,se.IsQualifyM,se.IsQualify4S,se.IsChainStore,se.IsMainStore,se.MainStoreName,se.ContactsPhone,se.BizCategory,se.GoodCount,se.EnterpriseRegistStatus#通过经纬度计算距离,ACOS(SIN( #{enterprise.latitude} * PI() / 180 ) * SIN(cast(if((se.Latitude is null or ltrim(rtrim(se.Latitude)) = ''), 0.0, se.Latitude) AS DECIMAL ( 12, 8 )) * PI() / 180) + COS(#{enterprise.latitude}  * PI() / 180 ) * COS(cast(if((se.Latitude is null or ltrim(rtrim(se.Latitude)) = ''), 0.0, se.Latitude) AS DECIMAL ( 12, 8 )) * PI() / 180) * COS(#{enterprise.longitude}  * PI() / 180 - cast(if((se.Longitude is null or ltrim(rtrim(se.Longitude)) = ''), 0.0, se.Longitude) AS DECIMAL ( 12, 8 )) * PI() / 180)) * 6378.14 * 1000 as Distancefrom sys_enterprise as sewhere se.IsEnabled = 1and se.IsAbolish = 0and se.Type = 0and se.EnterpriseId = #{enterprise.enterpriseId}

二、SQL参数说明

#通过经纬度计算距离,ACOS(SIN( #{enterprise.latitude} * PI() / 180 ) * SIN(cast(if((se.Latitude is null or ltrim(rtrim(se.Latitude)) = ''), 0.0, se.Latitude) AS DECIMAL ( 12, 8 )) * PI() / 180) + COS(#{enterprise.latitude}  * PI() / 180 ) * COS(cast(if((se.Latitude is null or ltrim(rtrim(se.Latitude)) = ''), 0.0, se.Latitude) AS DECIMAL ( 12, 8 )) * PI() / 180) * COS(#{enterprise.longitude}  * PI() / 180 - cast(if((se.Longitude is null or ltrim(rtrim(se.Longitude)) = ''), 0.0, se.Longitude) AS DECIMAL ( 12, 8 )) * PI() / 180)) * 6378.14 * 1000 as Distance

这一块代码用来计算两地的经纬度距离!
参数说明:
(1):#{enterprise.latitude} = 纬度
(2):#{enterprise.longitude} =经度

成功案例演示(对比腾讯地图):

代码案例

#查询当前定位附近维修企业距离(当前定位经纬度:22.53332,113.93041)
select se.Code,se.Name,se.Latitude as '企业纬度',se.Longitude as '企业经度',ACOS(SIN(22.53332 * PI() / 180 ) * SIN(cast(if((se.Latitude is null or ltrim(rtrim(se.Latitude)) = ''), 0.0, se.Latitude) AS DECIMAL ( 12, 8 )) * PI() / 180) + COS(22.53332  * PI() / 180 ) * COS(cast(if((se.Latitude is null or ltrim(rtrim(se.Latitude)) = ''), 0.0, se.Latitude) AS DECIMAL ( 12, 8 )) * PI() / 180) * COS(113.93041  * PI() / 180 - cast(if((se.Longitude is null or ltrim(rtrim(se.Longitude)) = ''), 0.0, se.Longitude) AS DECIMAL ( 12, 8 )) * PI() / 180)) * 6378.14 * 1000 as Distancefrom sys_enterprise as se
order by Distance asc

执行结果:

Distance就是计算经纬度后的距离,返回给后台后可以自己保留二位小数!
取当前定位和数据库第一条数据测试(腾讯地图接口返回)

测试结果,基本一致!

通过SQL语句计算两地的经纬度距离相关推荐

  1. Oracle经纬度查询最近sql,SQL语句计算经纬度距离

    二: SQL语句计算经纬度距离 SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( ...

  2. 一条SQL语句计算出商品剩余库存数量

    库存表(stock) 商品名称(mc)    商品总量(zl)  A                     100  B                     120 销售表(sales) 商品名 ...

  3. sql语句计算出每个月的天数

    从当前月-11个月开始,到当前月为止,用一个sql语句计算出每个月的天数. SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-LEVEL+1),'YYYY-MM') MONTH , ...

  4. 给定经纬度计算距离_根据经纬度计算两地间的距离

    import java.util.HashMap; import java.util.Map; public class MapDistance { private static double EAR ...

  5. java获取一定距离以内的经纬度值_java 根据经纬度计算两地间的距离

    现在网站上都流行贴出地理坐标位置,可以看出精度纬度,如果再结合GPS, 就可以定位出用户所在地的经纬度,自然可以计算出大概距离,下面是一段小代码,根据经纬度坐标直接计算出两地间的距离package c ...

  6. 计算两个经纬度之间的距离软件_小程序使用腾讯位置服务计算两地之间的距离(有源码)...

    背景: 在最近的小程序开发中,需要计算当前位置到目标位置之间的距离.背靠"腾讯爸爸",没有理由不使用腾讯的位置服务啊!趁着周末把使用方式整理一下,还写了一个demo,和大家分享一下 ...

  7. Java计算两点间经纬度距离(两种方式)

    反余弦计算方式: private static final double EARTH_RADIUS = 6371000; // 平均半径,单位:m:不是赤道半径.赤道为6378左右 public st ...

  8. 地理计算 | EXCEL中快速计算列表的经纬度距离

    前言 物流配送.城市通勤.测绘外业勘察等场景,经常使用EXCEL软件作为数据处理工具软件,在表格中记录经纬度列表,例如下图表格每行记录一个经纬度坐标,表示运动轨迹的坐标.根据业务要求需快速计算上下两个 ...

  9. 利用SQL语句计算库存

    计算库存量: SELECT TOP 100 PERCENT dbo.Office_In.InCode, dbo.Office_In.InDate,        dbo.Office_In.ComCo ...

最新文章

  1. 线下活动丨Big Model Meetup 第1期:大模型Prompt Tuning技术,8场学术报告和Poster展示...
  2. AMD依然yes!官宣锐龙5000系列CPU,单核性能首次超越英特尔,苏妈:最好的游戏CPU!...
  3. 前端开发工程师 - 04.页面架构 - CSS Reset 布局解决方案 响应式 页面优化 规范与模块化...
  4. 二维数组名作为实参或者形参
  5. View requires API level 14 (current min is 8): GridLayout
  6. java枚举的线程安全及序列化
  7. TDEngine游戏平台框架逻辑
  8. 基于启发式和智能优化算法的多约束柔性作业车间分级调度
  9. AIDA64 Business Edition(系统检测)多国语言绿色特别
  10. 维盟无线ap服务器地址,维盟无线AP覆盖调试步骤及常见问题
  11. C++模板(函数模板/类模板)
  12. cursor android,Android Cursor用法
  13. fluxion5.9 踩坑
  14. php检测硬件代码,查看“硬件设置”的源代码
  15. Node.js:knex.js数据库MySQL query builder
  16. 信捷XD系列PLC程序远程上下载怎么做?
  17. linux操作系统---信号
  18. 基于SSM开发的校园访客登记系统 JAVA
  19. 微信猜谜语小程序源码
  20. 卸载oracle9i精简版,Oracle精简版客户端

热门文章

  1. 《图解HTTP》阅读笔记
  2. 【原创】关于视频播放器如何做到边播边缓存?【如何用Vitamio做一款功能强大的视频播放器补充篇】
  3. php如何实现文字闪动,Javascrip实现文字跳动特效
  4. 《程序员的自我修养》(陈逸鹤)读书笔记
  5. ArcGIS面图层选择复制、切割
  6. 京东数据分析工程师面试题11.17-11.19编辑
  7. 值得一看的35个Redis常用问题总结
  8. 北邮计算机考研复试往年题目,北邮考研复试笔试题目汇总
  9. Chipsec UEFI Shell启动盘的制作与使用,让你可以在所有平台轻松使用Chipsec
  10. Java:实现对表格文件的便捷读取和保存