Java-根据经纬度计算距离
最近碰到一个需求,需要根据两个点的经纬度查询两点的距离。感觉以后还会用到,所以小记一波。
第一步:添加Maven依赖。
<dependency>
<groupId>org.gavaghan</groupId>
<artifactId>geodesy</artifactId>
<version>1.1.3</version>
</dependency>
1
2
3
4
5
第二步:代码实现。
package io.renren.common.utils;
import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GlobalCoordinates;
import java.math.BigDecimal;
/**
*@ClassName: DistanceUtils
*@Description: 根据经纬度计算距离
*@Author: lihongbo
*@Date: 2021-08-06 16:56
*/
public class DistanceUtils {
/**
* 根据经纬度,计算两点间的距离
* @param longitudeFrom 第一个点的经度
* @param latitudeFrom 第一个点的纬度
* @param longitudeTo 第二个点的经度
* @param latitudeTo 第二个点的纬度
* @return 返回距离 单位米
*/
public static double getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo) {
GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom);
GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
return new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.Sphere, source, target).getEllipsoidalDistance();
}
/**
* 根据经纬度,计算两点间的距离
* @param longitudeFrom 第一个点的经度
* @param latitudeFrom 第一个点的纬度
* @param longitudeTo 第二个点的经度
* @param latitudeTo 第二个点的纬度
* @param accurate 保留小数点几位
* @return 返回距离 单位千米
*/
public static double getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo,int accurate) {
double distance = getDistance(longitudeFrom, latitudeFrom, longitudeTo, latitudeTo);
if (accurate < 0) {
throw new RuntimeException("精确度必须是正整数或零");
}
return new BigDecimal(distance).divide(new BigDecimal(1000),accurate, BigDecimal.ROUND_HALF_UP).doubleValue();
}
public static void main(String[] args) {
double result = getDistance(116.336116, 40.0708, 116.41235, 40.053032,0);
System.out.println("经纬度距离计算结果:" + result+ "千米");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
————————————————
版权声明:本文为CSDN博主「lihongbo1215」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lihongbo1215/article/details/119459155
Java-根据经纬度计算距离相关推荐
- 百度地图经纬度计算距离(Java)
百度地图Java经纬度计算距离 阅读百度地图Web服务api文档 Maven依赖 百度地图经纬度工具类 阅读百度地图Web服务api文档 Maven依赖 <!--baidu--><d ...
- java 根据经纬度计算实际距离
经纬度,表面的含义就是经纬度的平方和,然后开平方...一切都没问题.. 但问题不是简单的二维平面,在二维空间中,这样计算是没有问题... 但是..... 百度上找了找,大概有三种方式,一个是根据反余弦 ...
- php 经纬度 距离排序,php mysql 根据经纬度计算距离和排序
#1.两点距离(1.4142135623730951) select st_distance(point(0,0),point(1,1)); select st_distance(point (120 ...
- 根据两点经纬度计算距离
根据两点经纬度计算距离 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的 假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等 ...
- 根据两点间的经纬度计算距离
/** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($l ...
- mysql,php和js根据经纬度计算距离
根据经纬度计算距离公式 图片来自互联网 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 ...
- 经纬度计算距离的公式
经纬度计算距离的公式是: 设点A(lat1, lon1),点B(lat2, lon2) d = R * arccos(sin(lat1) * sin(lat2) + cos(lat1) * cos(l ...
- mysql数据库根据经纬度计算距离,获取离我最近的地点列表,并排序。附近的人,附近商店等功能,一个sql就搞定
mysql数据库根据经纬度计算距离,获取离我最近的地点列表,并排序 附近的人,附近商家等功能,顺序显示顺序是由近到远的,便利用户查看和判断,sql实现如下. StringBuilder sb=new ...
- php mysql 经纬度_mysql,php和js根据经纬度计算距离
根据经纬度计算距离公式 图片来自互联网 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 ...
- PostgreSQL(PgSQL)根据经纬度计算距离
今天在使用PostgreSQL的PostGIS功能来实现根据经纬度计算距离和计算某一经纬度附近X米之内的地点,发现了一些错误,实现SQL语句和更正的语句如下: 计算两经纬度之间距离: select S ...
最新文章
- 我把面试官问的没话说了,这样好吗?
- EasyUI环境搭建与入门基础语法
- 【Java学习笔记之一】java关键字及作用
- 双向特征融合的数据自适应SAR图像舰船目标检测模型
- python大数据和java大数据的区别-Java、Python和大数据,哪个发展前景最好?
- delphi cxgrid读取本地image_读取多个(海康\大华)网络摄像头的视频流 (使用opencv-python),解决实时读取延迟问题...
- opencv-车牌识别
- dht11 新手原理详解(附代码)
- 充电IC驱动调试----移植充电IC bq25601
- 【visual studio】visual studio 2022 无法 复制黏贴
- 超强总结,用心分享丨大数据超神之路(三):Linux必备知识
- Android接入支付宝授权_小白教程
- Android中MotionEvent的来源和ViewRootImpl
- Windows10远程桌面连接配置
- 太秀了!那个在 GitHub 用文言文编程的小哥,竟从 28 万行唐诗中找出了对称矩阵...
- 开放api接口签名验证
- 2.6_4 Reids数据类型 + 基础命令
- 移动UI 设计有哪些文字规范
- 用CSS画一个针线包效果的边框
- 算法图解读书笔记:附程序
热门文章
- java房屋租赁系统源码,基于jsp+mysql+Spring开发,免费分享
- 跟着团子学SAP—SAP LTMC基础教程(物料主数据导入示例)
- 一个根据用户名生成头像的库——@multiavatar/multiavatar在react中的使用
- 对接微信支付服务商后商户能得到哪些服务?
- 2021-07-30-DJ-006 Django模型的objects方法、参数详解
- 通达信手机版分时图指标大全_今天教大家怎么把通达信副图指标源码导入手机通达信软件上。...
- 最详细的Mysql操作手册(一)
- PHP安卓获取gpgga,这个单片机程序中 感觉GPS的 GPGGA这条信息没有被保存
- 快递单中抽取关键信息【一】----基于BiGRU+CR+预训练的词向量优化
- C#【高级篇】 IntPtr是什么?怎么用?