点击下面的链接可以打开一个在线的根据两点之间的gps经纬度得到两地之间的距离:

在线距离计算

一个截图:

你看到这里的时候,是不是认为我们输入的就是弧度制的数值,如果是的话,那就错了。

GPS向我们传递过来的其实不是弧度制的数值,而是角度值,虽然这里我们得到的或者输入的是弧度值形式的,计算的过程中我们其实是按角度来转换为弧度的,GPS获取的也是角度值哦。

那么下面我们来纤细的看看如何计算吧 !

首先我们得知道,如何在数学公式的层面来解析这些数据,公式如下;(提醒一句,我也不知道该如何推导这个,初中的地理早还给老师了,哈哈)。

解释下,a是纬度的差的弧度值。b是经度的差的弧度值。lat 1和lat2是两点的纬度的弧度值。

至于 6378.137是地球的R,不过这个也不是一定的,学过地理的都知道地球是椭圆的,极半径和赤道半径是不一样的。

地球的 极性半径 是从其中心的距离到北部或南极, 和是大约3950 英哩(6356.9 公里) 。
地球的 赤道半径 是从其中心的距离到赤道, 和是大约3963 英哩(6378.5 公里) 。
地球的 平均半径 是大约3959 英哩(6371.3 公里) 。
航天上用到的是经过拟合的平半径6378140米。嗯,这里我们就大概取的这个。

好了,下面是具体的java代码:

 public static void main(String[] args) {//地球半径 double R=6378137.0; //模拟数据double lat1=109.99309;double log1=39.81625;double lat2=109.99456;double log2= 39.81595;//将角度转化为弧度double radLat1=(lat1*Math.PI/180.0);double radLat2=(lat2*Math.PI/180.0);double radLog1=(log1*Math.PI/180.0);double radLog2=(log2*Math.PI/180.0);//纬度的差值double a=radLat1-radLat2;//经度差值double b=radLog1-radLog2;//弧度长度double s=2*Math.asin(Math.sqrt(Math.pow(Math.sin(a/2), 2)+Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2), 2)));//获取长度s=s*R;//返回最接近参数的 long。结果将舍入为整数:加上 1/2s=Math.round(s*10000)/10000;System.out.println(s);}

打印的结果:

跟最上面的截图的数据是相同的,至于为啥一个是0.1637km,一个是164.0m,这是有Math.round()方法的原因,因为它会返回一个long型的值,另外的也是R的取值不一样,取值不是6378140也不是6378140。我用了平均半径6371.3测试了下,得到的是0.1638617225039341,比0.1367km大一些。

Gps测量两点之间的距离相关推荐

  1. pythonopencv测距_如何在opencv中测量两点之间的距离(像素到厘米)

    你好,我有一个代码,可以测量两点之间的距离,但我认为结果是以像素为单位的,所以想得到距离,但以厘米为单位. 我使用的是微软LifecamHD-3000摄像头,我真的不知道在代码的这一点上该怎么做. T ...

  2. 通过gps给定的两个经纬度坐标,计算两点之间的距离

    /** * * 计算两地之间的距离(给定经纬度) * * @param lat1 出发地经度 * @param lng1 出发地纬度 * @param lat2 目的地经度 * @param lng2 ...

  3. Java根据经纬度计算两点之间的距离

    1. 前言   在我们平时使用美团,饿了么等app进行订餐,或者使用猫眼进行订电影票的时候,都有一个距离的排序,表明该家店距离我们当前的位置,这种基于地理位置的服务,统一被称为LBS(Location ...

  4. Java计算两个GPS坐标点之间的距离(可用于计算里程等)

    直接贴上工具类: public class PositionUtil {private static final double EARTH_RADIUS = 6378.137; // 6378.137 ...

  5. php 计算两点时间距离,PHP计算地球上两点之间的距离(示例详解)

    给定经度和纬度,求地球上两点之间的距离.首先我们需要了解该问题的解决思路,然后再用PHP代码来实现计算. 此问题可以用半正矢(haversine)公式求解: 大圆距离或正交距离是球面(或地球表面)上两 ...

  6. C#求空间两点之间的距离

    问题 求空间两点之间的距离 算法思想 d=sqrt(pow(x₁−x₂)+pow(y₁−y₂)+pow(z₁−z₂))d=sqrt(pow(x₁-x₂)+pow(y₁-y₂)+pow(z₁-z₂)) ...

  7. C语言试题八十四之求空间两点之间的距离

    1.题目 定义一个表示三维空间点坐标的结构类型,通过函数求空间上任意两点之间的距离. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程序设计科目.帮助C语言学者打好程 ...

  8. php 如何根据经纬度计算距离,小程序实例:如何根据经纬度计算两点之间的距离(代码)...

    本篇文章给大家带来的内容是关于小程序实例:如何根据经纬度计算两点之间的距离(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.//计算两点位置距离 getDistance: fun ...

  9. JavaScript:实现计算二维平面上两点之间的距离算法(附完整源码)

    JavaScript:实现计算二维平面上两点之间的距离算法 /*Calculate the mathematical properties involving coordinatesCalculate ...

最新文章

  1. java 静态内部类
  2. 汇编指令---CDQ
  3. Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
  4. oshi.systeminfo 获取cpu的数量_智能IC/CPU卡梯控系统的功能优势
  5. python中fork创建新的进程
  6. EMQ源码之--EMQ的启动
  7. java 将依赖打包进lib_maven把依赖包拷贝到lib下
  8. 跳一跳python源码下载_python 微信跳一跳和源码解读
  9. html 像素跟百分比,html – 将百分比宽度与边距(以像素为单位)组合起来
  10. 处理iPhone5加长屏幕的4种方法
  11. vue form validate 多个input_Vue表单校验插件Vuerify使用详细教程及示例
  12. oracle输入命令为什么显示2,oracle安装后完善2-2 sqlplus配置变量 命令提示符如何显示为用户名...
  13. data后缀文件解码_小白学PyTorch | 17 TFrec文件的创建与读取
  14. 【学习】024 springCloud
  15. cmock学习笔记20190821
  16. win10(win8)上安装miniTool后出现请手动安装fastboot驱动问题
  17. 给文字添加超链接,没有你想的那么难
  18. Excel单元格区域快速导出为PDF
  19. 学生网页作业网站设计——中华美德(6页) HTML+CSS+JavaScript web大作业 静态网页
  20. librosa实现音频格式转换(单曲批量) | MP3转wav

热门文章

  1. SpringBoot框架的基本结构
  2. 大数据与云计算技术周报(第148期)
  3. 初识 Mac机子 关机命令
  4. 进阶篇:4)面向装配的设计DFA总章
  5. Jenkins使用FTP上传文件报错问题处理
  6. 精简高效的CSS命名准则和方法
  7. android sim卡应用程序,Android双SIM卡API
  8. ilm 和dlm差异_ILM是什么意思
  9. Python实现:已知化学分子的输入文件坐标(高斯计算输入文件为例),求其中任意三个原子确定的平面的法向量和单位法向量
  10. 请简述一下 Ajax 的原理及实现步骤