• 获取两点经纬度的具体的值,计算两地经度和纬度只差,使用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          //反正弦函数

以上,是笔者粗浅的理解和实现
当然,通过三角函数变换,计算方法的实现还有其他写法,欢迎大家补充,

通过经纬度计算两点直线距离的计算方法相关推荐

  1. 使用百度地图API计算两点直线距离、道路距离和行车时间

    使用百度地图API计算两点直线距离.道路距离和行车时间 摘要 关键词 介绍 数据展示 工具介绍 根据经纬度计算两点之间的距离 根据经纬度计算两点之间的道路距离和行车时间 多进程 运行中 结果展示 问题 ...

  2. 微信小程序通过经纬度计算两点之间距离

    小程序中通过经纬度计算两点之间的距离km 1.拾取两地经纬度坐标 . data:{//当前定位位置latitude: null,longitude: null,// 目的地坐标latitude2: 1 ...

  3. C#中根据经纬度计算两点的距离

    功能如标题所言,具体代码如下,请查收. //地球半径,单位米 private const double EARTH_RADIUS = 6378137;/// <summary> /// 计 ...

  4. php根据经纬度计算两点距离,thinkphp5 通过经纬度计算两点的距离

    通过mysql查询两点之间的距离,thinkphp5查询 代码如下 $c_id = input('catid',0); //工作类别的id $lat = input('la'); //经度 $lng ...

  5. 地球经纬度计算两点距离

    现在利用--地球经纬度计算两点的距离--的基本原理计算气辉层所对应的经纬度距离. 基本原理如下: 纬度分为60分,每一分再分为60秒以及秒的小数.没错,60进制,纬度线投射在图上看似水平的平行线,但实 ...

  6. 通过经纬度计算两点之间的距离的公式

    通过经纬度计算两点之间距离的常用公式如下: 设点 A 的纬度为 $lat_A$,经度为 $lon_A$,点 B 的纬度为 $lat_B$,经度为 $lon_B$,则两点之间的距离 $d$ 为: $d ...

  7. 通过经纬度计算两点间的直线距离

    /*** @description 通过经纬度计算两点间的直线距离* @param lat1* @param lng1* @param lat2* @param lng2* @returns {num ...

  8. 地理大圆距离 C语言,通过经纬度计算两点之间的距离

    2019独角兽企业重金招聘Python工程师标准>>> 项目里有一个需求是计算两台机器之间的距离,有了这两台机器的经纬度,距离就很好计算了. 有一个 球面余弦定律 可以用来可以计算球 ...

  9. matlab利用经纬度计算距离_【Matlab】根据经纬度计算两点间的球面距离

    做建模或者研究空间数据,可能会遇到"根据经纬度计算两点间的球面距离"的问题,网上的资料很多,都是各种公式推导,但是一旦按公式编程计算,很可能得不到正确的距离.根本原因是在" ...

最新文章

  1. 《智源社区周刊:预训练模型》第2期:Facebook用“预微调”改进预训练性能、再议GPT-3中的东方主义偏见...
  2. 一般计算 【2007】三3 C++版
  3. (二)OpenStack---M版---双节点搭建---数据库安装和配置
  4. Hark的数据结构与算法练习之基数排序
  5. bootstrap绿色大气后台模板下载[转]
  6. python第三方库安装-多种方式
  7. 北京计算机工业学校96届,刘驰_北京理工大学计算机学院
  8. 数字语音信号处理学习笔记——语音信号的同态处理(2)
  9. java 设计模式学习笔记十 bridge桥模式
  10. FGPM:文本对抗样本生成新方法
  11. Unity MeshRender更换材质球方法
  12. linux usb xhci ehci,ehci和xhci有什么区别
  13. OSError: [Errno 22] Invalid argument:**
  14. matlab图像分类器,[转载]两种图像分类算法和matlab源代码
  15. Linux虚拟机扩容
  16. 计算机通信逻辑信号电信号,计算机通信原理
  17. 如何评判一个企业是否需要实施erp系统?
  18. java 课设 商品库存管理系统
  19. 服务器被腾讯云助手告警通知有木马文件
  20. loadrunner11补丁

热门文章

  1. 2022 年的前端行业,咋样啦?
  2. android 拦截鼠标按键
  3. 使用 Python 生成迷宫
  4. 一个骗人的恶劣网站: GPS 定位好友 的传说 ( 其中一个域名是 ipl38.com 诈骗:利用手机号码GPS卫星追踪你的他(她)在什么位置
  5. csharp基础练习题:寻找恩人【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练
  6. 小样本学习记录————文本中特征空间的数据增强MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification
  7. 使用网址--java JPI代码示例
  8. 常用室内定位技术总结
  9. 微信聊天记录删除了怎么恢复?最简单快捷的恢复方式看这里
  10. App测试-怎么测试启动时间?