通过SQL语句计算两地的经纬度距离
通过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语句计算两地的经纬度距离相关推荐
- Oracle经纬度查询最近sql,SQL语句计算经纬度距离
二: SQL语句计算经纬度距离 SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( ...
- 一条SQL语句计算出商品剩余库存数量
库存表(stock) 商品名称(mc) 商品总量(zl) A 100 B 120 销售表(sales) 商品名 ...
- sql语句计算出每个月的天数
从当前月-11个月开始,到当前月为止,用一个sql语句计算出每个月的天数. SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-LEVEL+1),'YYYY-MM') MONTH , ...
- 给定经纬度计算距离_根据经纬度计算两地间的距离
import java.util.HashMap; import java.util.Map; public class MapDistance { private static double EAR ...
- java获取一定距离以内的经纬度值_java 根据经纬度计算两地间的距离
现在网站上都流行贴出地理坐标位置,可以看出精度纬度,如果再结合GPS, 就可以定位出用户所在地的经纬度,自然可以计算出大概距离,下面是一段小代码,根据经纬度坐标直接计算出两地间的距离package c ...
- 计算两个经纬度之间的距离软件_小程序使用腾讯位置服务计算两地之间的距离(有源码)...
背景: 在最近的小程序开发中,需要计算当前位置到目标位置之间的距离.背靠"腾讯爸爸",没有理由不使用腾讯的位置服务啊!趁着周末把使用方式整理一下,还写了一个demo,和大家分享一下 ...
- Java计算两点间经纬度距离(两种方式)
反余弦计算方式: private static final double EARTH_RADIUS = 6371000; // 平均半径,单位:m:不是赤道半径.赤道为6378左右 public st ...
- 地理计算 | EXCEL中快速计算列表的经纬度距离
前言 物流配送.城市通勤.测绘外业勘察等场景,经常使用EXCEL软件作为数据处理工具软件,在表格中记录经纬度列表,例如下图表格每行记录一个经纬度坐标,表示运动轨迹的坐标.根据业务要求需快速计算上下两个 ...
- 利用SQL语句计算库存
计算库存量: SELECT TOP 100 PERCENT dbo.Office_In.InCode, dbo.Office_In.InDate, dbo.Office_In.ComCo ...
最新文章
- 线下活动丨Big Model Meetup 第1期:大模型Prompt Tuning技术,8场学术报告和Poster展示...
- AMD依然yes!官宣锐龙5000系列CPU,单核性能首次超越英特尔,苏妈:最好的游戏CPU!...
- 前端开发工程师 - 04.页面架构 - CSS Reset 布局解决方案 响应式 页面优化 规范与模块化...
- 二维数组名作为实参或者形参
- View requires API level 14 (current min is 8): GridLayout
- java枚举的线程安全及序列化
- TDEngine游戏平台框架逻辑
- 基于启发式和智能优化算法的多约束柔性作业车间分级调度
- AIDA64 Business Edition(系统检测)多国语言绿色特别
- 维盟无线ap服务器地址,维盟无线AP覆盖调试步骤及常见问题
- C++模板(函数模板/类模板)
- cursor android,Android Cursor用法
- fluxion5.9 踩坑
- php检测硬件代码,查看“硬件设置”的源代码
- Node.js:knex.js数据库MySQL query builder
- 信捷XD系列PLC程序远程上下载怎么做?
- linux操作系统---信号
- 基于SSM开发的校园访客登记系统 JAVA
- 微信猜谜语小程序源码
- 卸载oracle9i精简版,Oracle精简版客户端