java计算两点距离_Java 使用经度计算两点之间的距离?
小编典典
上面Dommer给出的Java代码给出的结果略有不正确,但是如果你正在处理GPS轨迹,则小错误加起来。这是Java中Haversine方法的实现,该方法还考虑了两点之间的高度差。
/**
* Calculate distance between two points in latitude and longitude taking
* into account height difference. If you are not interested in height
* difference pass 0.0. Uses Haversine method as its base.
*
* lat1, lon1 Start point lat2, lon2 End point el1 Start altitude in meters
* el2 End altitude in meters
* @returns Distance in Meters
*/
public static double distance(double lat1, double lat2, double lon1,
double lon2, double el1, double el2) {
final int R = 6371; // Radius of the earth
double latDistance = Math.toRadians(lat2 - lat1);
double lonDistance = Math.toRadians(lon2 - lon1);
double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
+ Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
* Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double distance = R * c * 1000; // convert to meters
double height = el1 - el2;
distance = Math.pow(distance, 2) + Math.pow(height, 2);
return Math.sqrt(distance);
}
2020-03-15
java计算两点距离_Java 使用经度计算两点之间的距离?相关推荐
- oracle如何计算2个坐标的距离,百度地图两个坐标之间的距离计算
/** * 计算两组经纬度坐标 之间的距离 * params :lat1 纬度1: lng1 经度1: lat2 纬度2: lng2 经度2: len_type (1:m or 2:km); * re ...
- 计算N个点和M个点之间的距离
KNN中,训练样本有train_count个,测试样本有test_count个,每个样本有attr_count个属性.现在需要快速计算test_count个测试样本和train_count个样本之间的 ...
- java金额比较大小_JAVA中精确计算金额BigDecimal
packagecom.chauvet.utils;importjava.math.BigDecimal;importjava.text.DecimalFormat;importjava.text.Nu ...
- 圆的周长在java中怎么表示_Java基础之计算圆的周长
最简单的程序 圆形的周长公式: C=πd=2πr π是圆周率,约等于3.14,公式中r为圆的半径,d为圆的直径 在数学领域,称之为公式,在计算机领域,习惯称之为算法. 算法描述的是,如果要解决一个问题 ...
- java用for计算自然常数_Java程序来计算自然数之和
Java程序来计算自然数之和 在此程序中,您将学习如何在Java中使用for循环和while循环来计算自然数之和. 正数1.2.3 ...称为自然数,其和是从1到给定数的所有数字的结果. 对于n,自然 ...
- java编一个漏斗_java – 漏斗分析计算,你如何计算漏斗?
首先,使用标准SQL,给出您的假设: 有一个简单布局的表EVENTS: EVENTS ----------------------------- SESION_ID , EVENT_NAME , TM ...
- java异步获取结果_java获取异步计算的结果
java Future/Callable/Executors 如何获取一个异步线程的结果呢?使用普通的方法是无法获取异步线程返回结果的,比如继承Thread类.实现Runnable接口这两种方式创建的 ...
- java gui 窗口 传值_java – GUI – 在不同窗口之间传输数据(J...
我已经开始使用bash脚本以及一些java(控制台)和python来满足我的编程需求.想想我将工作整理到某个图形环境的时候,我偶然发现了一个基本的任务,让我现在几个小时都挂了. main函数在启动主应 ...
- java 垃圾回收 指针_Java 和 C++ 垃圾回收之间的差别
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.指针 JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成 ...
- java包 类 方法_Java中包与包之间方法的调用及其关键字区分(基础)
最近在写应用时,对包与包之间方法的调用不太清楚,专门看视频和网站后整理了这篇文章,希望对刚入门的同志有所帮助,进入主题. 首先我们先简单看看Java中private.protected.public和 ...
最新文章
- 200行代码,一行行教你自制微信机器人
- SCCM 2012 R2---安装SCCM 2012 R2
- JaveWeb 公司项目(4)----- Easyui的表单验证
- HTML5与HTML4的区别
- [Spring Framework]学习笔记--Dependency injection(DI)
- 湖北师范大学c语言考试题目,湖北师范学院2010期末C语言试卷.doc
- ubuntu建立向windows一样的快捷方式
- android adb杀死服务,Android app是如何杀掉的
- linux 删除in链接,linux - 从TCP_IN删除端口不会从CSF上的外部流量关闭它 - 堆栈内存溢出...
- mod_wsgi 的两种模式
- Android-01:扫描SD卡以.xxx结尾的文件
- Windows RDP协议重大漏洞后发现黑客开始大规模扫瞄
- editplus3编辑器颜色修改
- Macbook pro/air 2013 late -2014 使用转接卡更换NVME SSD休眠不醒问题的解决办法
- 【极限精简888M,老机专用】星岚技术 Win7 x64 深度精简版 V2020.10
- 安川机器人示教器按键功能介绍
- 宝塔面板 - 通过宝塔面板安装的mysql 默认密码是什么
- 修改服务器线路,介绍几种常见的网络服务器线路
- Js 实现十六进制颜色值和RGB颜色值转换整理
- cass简码大全_cass简码实体对照表
热门文章
- 在SUSE 10下安装oracle 11g
- mssql2000跟mssql2005共享问题
- 文件夹复制删除 C#
- tag untag_交换机该怎么理解Hybird中Tag和Untag端口模式?
- gd32f303 设计中断优先级_浅谈飞控的软件设计
- 第五天:在博客路由中使用登录验证,配置 nginx解决前后端跨域
- java利用iText.jar实现jpg转pdf
- linux分区用来支持虚拟内存,Linux分区方案
- 大专php应用开发期末考试,php程序员笔试题及答案1.doc
- easyui combobox自动搜索提示功能