首先我们要知道一个球面距离公式

R*arccos(cos(lat1*pi()/180 )*cos(lat2*pi()/180)*cos(lng1*pi()/180 -lng2*pi()/180)+

sin(lat1*pi()/180 )*sin(lat2*pi()/180))

其中,R=6370996.81;//地球半径,pi()为圆周率π,(lng1,lat1),(lng2,lat2)分别是百度地图的两个经纬度

接下来我们将公式转换为代码:

private static double EARTH_RADIUS = 6377.830;// 地球半径(千米)

private static double rad(double d) {

return d * Math.PI / 180.0;

}

//第一种计算方法

/**

计算两点之间的距离

lat1:纬度1

lng1:经度1

lat2:纬度2

lng2:经度2

return 距离

**/

public static double GetDistance(double lat1, double lng1, double lat2,

double lng2) {

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double radLng1 = rad(lng1);

double radLng2 = rad(lng2);

double s = Math.acos(Math.cos(radLat1) * Math.cos(radLat2)

* Math.cos(radLng1 - radLng2) + Math.sin(radLat1)

* Math.sin(radLat2));

s = s * EARTH_RADIUS;

s = Math.round(s * 10000) / 10000;

return s;

}

//以下是第二种计算方法

public static double GetDistance2(double lat1, double lng1, double lat2,

double lng2) {

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double a = radLat1 - radLat2;

double b = rad(lng1) - rad(lng2);

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 * EARTH_RADIUS;

s = Math.round(s * 10000) / 10000;

return s;

}

java实现米和厘米比较好_java如何根据实际经、纬度和已知经、纬度做对比,计算出具体偏差米数。(以米为单位)...相关推荐

  1. java遍历两个日期_java 已知两个日期,遍历出两个日期之间所有的日期,重点是::包括第一个日期!!...

    哈哈,又是日期类问题,那我肯定建议你用Java8的新时间API了,而且你时间字符串还是这种格式yyyy-MM-dd,直接LocalDate.parse方法就可以把字符串转化为LocalDate对象了 ...

  2. java怎么求两组整数的或集,确定整数是否在具有已知值集的两个整数(包括)之间的最快方法...

    在C或C中是否有比 x >= start && x <= end 更快的方法来测试整数是否在两个整数之间? 更新:我的特定平台是iOS . 这是盒子模糊功能的一部分,它将像 ...

  3. Java 输入两个日期,计算出期间的周数

    只要涉及到其他周的天,都算期间的周数: static int calculate(Calendar c){int dayForWeek;if(c.get(Calendar.DAY_OF_WEEK) = ...

  4. java阿基米德螺线_阿基米德螺线图形设计_java基础实验报告.doc

    阿基米德螺线图形设计_java基础实验报告.doc 南京工程学院实验报告课程名称JAVA基础实验项目名称图形用户界面设计实验题目阿基米德螺线图形设计实验学生班级网络132实验学生姓名薛康威学号2021 ...

  5. unity中单位是米还是厘米_小学数学常用单位换算汇总,收藏起来方便孩子查阅...

    单位换算题是小学数学学习重点之一.孩子对单位换算记忆不够深刻,所以总是混淆运用,绕来绕去会出现计算失误,进率错误等问题. 单位换算大全来啦,还有记忆窍门,就算是小马虎也能一目了然,熟记于心.记得多摘抄 ...

  6. unity中单位是米还是厘米_【一步数学】小学数学单位换算公式大全及专项训练...

    重量单位换算 1吨=1000千克 1吨=1000 000克 吨:吨是重量单位,公制一吨等于1000公斤:计算船只容积的单位,一吨等于2.83立方米(合100立方英尺). 1千克=1000克 500克= ...

  7. 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。//现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等

    //如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048. //现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等 ...

  8. 厘米换算英尺英寸程序_使用C程序计算两个城市之间的距离,从公里到米,厘米,英尺和英寸...

    厘米换算英尺英寸程序 Input the distance between two cities in kilometers, we have to calculate the distance in ...

  9. 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸

    如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048.现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸 ...

最新文章

  1. Qt高级——QTestLib单元测试框架
  2. VTK:选定的顶点和边用法实战
  3. 很朴素的学习嵌入式系统的经验
  4. aix oracle监听配置_AIX系统中安装ORACLE,客户端连接时,监听会宕掉的问题
  5. Java旅游动吧项目讲解_springboot动吧项目
  6. 客座编辑:杜小勇(1963-),男,博士,中国人民大学信息学院教授、博士生导师。...
  7. 数论 —— 高次同余方程与 BSGS 算法
  8. 设计模式12——中介者模式
  9. linux 64 mysql下载官网_Linux下安装MySQL5.7
  10. HTML day02(html列表与菜单的制作)
  11. Linux 14.04 CUDA theano安装
  12. 关于getX()getY()就可以获取到位置,找不到方法问题
  13. 百度地图获取行政区划边界
  14. 看板记录工具wekan
  15. python毕业设计总结范文大全_毕业设计总结【范文】
  16. 未来计算机行业哪个吃香,男孩子未来最吃香的十大行业
  17. android build.prop的参数
  18. 开发笔记-内表指针赋值
  19. 计算机毕业论文致谢信范文,论文致谢信10篇
  20. android nvram读写,MTK Android平台Nvram与Gensor数据获取

热门文章

  1. html显示余额什么做,账户余额.html · dengzhao/prd_zhangyao - Gitee.com
  2. nxos启动的初始化和https访问nx-api
  3. C语言--第2次作业
  4. 前端基础之CSS属性
  5. URI,URL与URN的区别
  6. 洛谷1005 【NOIP2007】矩阵取数游戏
  7. UVA - 1643 Angle and Squares (角度和正方形)(几何)
  8. MedMNIST:18个数据集开启2D+3D医学影像之旅,可免费下载
  9. OpenGait:首个步态识别框架开源了!
  10. 迁移性好、多用途,港中文提出特征分离的无监督人类三维姿态表征