通过经纬度计算两点直线距离的计算方法
- 获取两点经纬度的具体的值,计算两地经度和纬度只差,使用Math包内提供的三角函数,进行计算
public final class DistanceUtils {/*** 地球半径,单位 km*/private static final double EARTH_RADIUS = 6378.137;public static void main(String[] args) {double d = getDistance(116.308479, 39.983171, 116.353454, 39.996059);System.out.println(d);}/*** 根据经纬度,计算两点间的距离** @param longitude1 第一个点的经度* @param latitude1 第一个点的纬度* @param longitude2 第二个点的经度* @param latitude2 第二个点的纬度* @return 返回距离 单位千米*/public static double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) {// 纬度double lat1 = Math.toRadians(latitude1);double lat2 = Math.toRadians(latitude2);// 经度double lng1 = Math.toRadians(longitude1);double lng2 = Math.toRadians(longitude2);// 纬度之差double a = lat1 - lat2;// 经度之差double b = lng1 - lng2;// 计算两点距离的公式double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));// 弧长乘地球半径, 返回单位: 千米s = s * EARTH_RADIUS;return s;}
}
数学公式
球面距离公式是计算球面上两点间距离的公式。设所求点A ,纬度角β1 ,经度角α1 ;点B ,纬度角β2 ,经度角α2。则距离S=R·arc cos[cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2],其中R为球体半径。
其中,用到的函数分别是
- Math.pow(x,y) //这个函数是求x的y次方
- Math.toRadians //将一个角度测量的角度转换成以弧度表示的近似角度
- Math.sin //正弦函数
- Math.cos //余弦函数
- Math.sqrt //求平方根函数
- Math.asin //反正弦函数
以上,是笔者粗浅的理解和实现
当然,通过三角函数变换,计算方法的实现还有其他写法,欢迎大家补充,
通过经纬度计算两点直线距离的计算方法相关推荐
- 使用百度地图API计算两点直线距离、道路距离和行车时间
使用百度地图API计算两点直线距离.道路距离和行车时间 摘要 关键词 介绍 数据展示 工具介绍 根据经纬度计算两点之间的距离 根据经纬度计算两点之间的道路距离和行车时间 多进程 运行中 结果展示 问题 ...
- 微信小程序通过经纬度计算两点之间距离
小程序中通过经纬度计算两点之间的距离km 1.拾取两地经纬度坐标 . data:{//当前定位位置latitude: null,longitude: null,// 目的地坐标latitude2: 1 ...
- C#中根据经纬度计算两点的距离
功能如标题所言,具体代码如下,请查收. //地球半径,单位米 private const double EARTH_RADIUS = 6378137;/// <summary> /// 计 ...
- php根据经纬度计算两点距离,thinkphp5 通过经纬度计算两点的距离
通过mysql查询两点之间的距离,thinkphp5查询 代码如下 $c_id = input('catid',0); //工作类别的id $lat = input('la'); //经度 $lng ...
- 地球经纬度计算两点距离
现在利用--地球经纬度计算两点的距离--的基本原理计算气辉层所对应的经纬度距离. 基本原理如下: 纬度分为60分,每一分再分为60秒以及秒的小数.没错,60进制,纬度线投射在图上看似水平的平行线,但实 ...
- 通过经纬度计算两点之间的距离的公式
通过经纬度计算两点之间距离的常用公式如下: 设点 A 的纬度为 $lat_A$,经度为 $lon_A$,点 B 的纬度为 $lat_B$,经度为 $lon_B$,则两点之间的距离 $d$ 为: $d ...
- 通过经纬度计算两点间的直线距离
/*** @description 通过经纬度计算两点间的直线距离* @param lat1* @param lng1* @param lat2* @param lng2* @returns {num ...
- 地理大圆距离 C语言,通过经纬度计算两点之间的距离
2019独角兽企业重金招聘Python工程师标准>>> 项目里有一个需求是计算两台机器之间的距离,有了这两台机器的经纬度,距离就很好计算了. 有一个 球面余弦定律 可以用来可以计算球 ...
- matlab利用经纬度计算距离_【Matlab】根据经纬度计算两点间的球面距离
做建模或者研究空间数据,可能会遇到"根据经纬度计算两点间的球面距离"的问题,网上的资料很多,都是各种公式推导,但是一旦按公式编程计算,很可能得不到正确的距离.根本原因是在" ...
最新文章
- 《智源社区周刊:预训练模型》第2期:Facebook用“预微调”改进预训练性能、再议GPT-3中的东方主义偏见...
- 一般计算 【2007】三3 C++版
- (二)OpenStack---M版---双节点搭建---数据库安装和配置
- Hark的数据结构与算法练习之基数排序
- bootstrap绿色大气后台模板下载[转]
- python第三方库安装-多种方式
- 北京计算机工业学校96届,刘驰_北京理工大学计算机学院
- 数字语音信号处理学习笔记——语音信号的同态处理(2)
- java 设计模式学习笔记十 bridge桥模式
- FGPM:文本对抗样本生成新方法
- Unity MeshRender更换材质球方法
- linux usb xhci ehci,ehci和xhci有什么区别
- OSError: [Errno 22] Invalid argument:**
- matlab图像分类器,[转载]两种图像分类算法和matlab源代码
- Linux虚拟机扩容
- 计算机通信逻辑信号电信号,计算机通信原理
- 如何评判一个企业是否需要实施erp系统?
- java 课设 商品库存管理系统
- 服务器被腾讯云助手告警通知有木马文件
- loadrunner11补丁
热门文章
- 2022 年的前端行业,咋样啦?
- android 拦截鼠标按键
- 使用 Python 生成迷宫
- 一个骗人的恶劣网站: GPS 定位好友 的传说 ( 其中一个域名是 ipl38.com 诈骗:利用手机号码GPS卫星追踪你的他(她)在什么位置
- csharp基础练习题:寻找恩人【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练
- 小样本学习记录————文本中特征空间的数据增强MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification
- 使用网址--java JPI代码示例
- 常用室内定位技术总结
- 微信聊天记录删除了怎么恢复?最简单快捷的恢复方式看这里
- App测试-怎么测试启动时间?