【Java AWT 图形界面编程】经度 Longitude 、纬度 Latitude 计算 ( 经度、纬度概念 | 根据经纬度计算距离 )
2023-06-13 09:17:40 时间
文章目录
一、经度、纬度概念
经度 Longitude , 本初子午线 位置 为 0 度经线 , 相当于水平 x 轴 的坐标 , 经度的取值范围 -180 度 ~ +180 度 ;
纬度 Latitude , 相当于 垂直 y 轴 的坐标 , 纬度的取值范围 -90 度 ~ + 90 度 ;
西经 和 南纬 是负数 ;
二、根据经纬度计算距离
根据 球面三角学 和 Haversine 公式 , 计算 两个 经纬度 之间的距离 :
- Java 语言 :
public class LocationUtils {
private static final double EARTH_RADIUS = 6371; // 地球平均半径,单位为公里
public static double getDistance(double lat1, double lon1, double lat2, double lon2) {
double radLat1 = Math.toRadians(lat1);
double radLat2 = Math.toRadians(lat2);
double a = radLat1 - radLat2;
double b = Math.toRadians(lon1) - Math.toRadians(lon2);
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 * 1000) / 1000.0; // 保留三位小数
return s;
}
}
- Python 语言 :
import math
def distance(lat1, lon1, lat2, lon2):
R = 6371 # 地球半径,单位为公里
dlat = math.radians(lat2 - lat1)
dlon = math.radians(lon2 - lon1)
a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) \
* math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = R * c # 距离,单位为公里
return d
相关文章
- Contest1620 – 2020-2021-2学期《Java Web 系统开发》:java基础:字符串
- 如何配置java环境变量_java环境变量怎么配置
- Java 注解(Annotation)
- java中static关键字的作用_Java:Java中static关键字作用
- md5 java 实现_MD5加密的Java实现
- java实现ajax_Ajax&Java
- java 文件锁[通俗易懂]
- Java中violate关键字详解(2)?真正了解violate
- java无法获取服务器上路径,JAVA获取服务器路径的步骤
- JAVA数据库连接池_java与数据库的连接怎么实现
- java中notify作用_notify的过去式
- Java中的锁的使用和实现介绍
- Java 调用 MySQL 存储过程并获得返回值详解数据库
- Java学习笔记之六java三种循环(for,while,do……while)的使用方法及区别详解编程语言
- Java 命令行解析器 JOpt Simple详解编程语言
- [零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念详解编程语言
- 数据库轻松搞定:用Java访问Oracle数据库(java访问oracle)
- 版本配置Linux系统的默认Java版本(linux默认java)
- Java实现Redis数据写入(java写入redis)
- Java并发编程之美
- 查找Java进程:Linux解决方案(linux查找java进程)
- 询Java与Oracle联合查询更高效的数据处理方式(java oracle查)
- Redis实现Java语言下的遍历处理(redis遍历java)
- Java正则表达式功能及应用