最近碰到一个需求,需要根据两个点的经纬度查询两点的距离。感觉以后还会用到,所以小记一波。

第一步:添加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-根据经纬度计算距离相关推荐

  1. 百度地图经纬度计算距离(Java)

    百度地图Java经纬度计算距离 阅读百度地图Web服务api文档 Maven依赖 百度地图经纬度工具类 阅读百度地图Web服务api文档 Maven依赖 <!--baidu--><d ...

  2. java 根据经纬度计算实际距离

    经纬度,表面的含义就是经纬度的平方和,然后开平方...一切都没问题.. 但问题不是简单的二维平面,在二维空间中,这样计算是没有问题... 但是..... 百度上找了找,大概有三种方式,一个是根据反余弦 ...

  3. php 经纬度 距离排序,php mysql 根据经纬度计算距离和排序

    #1.两点距离(1.4142135623730951) select st_distance(point(0,0),point(1,1)); select st_distance(point (120 ...

  4. 根据两点经纬度计算距离

    根据两点经纬度计算距离 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的 假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等 ...

  5. 根据两点间的经纬度计算距离

    /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($l ...

  6. mysql,php和js根据经纬度计算距离

    根据经纬度计算距离公式 图片来自互联网 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 ...

  7. 经纬度计算距离的公式

    经纬度计算距离的公式是: 设点A(lat1, lon1),点B(lat2, lon2) d = R * arccos(sin(lat1) * sin(lat2) + cos(lat1) * cos(l ...

  8. mysql数据库根据经纬度计算距离,获取离我最近的地点列表,并排序。附近的人,附近商店等功能,一个sql就搞定

    mysql数据库根据经纬度计算距离,获取离我最近的地点列表,并排序 附近的人,附近商家等功能,顺序显示顺序是由近到远的,便利用户查看和判断,sql实现如下. StringBuilder sb=new ...

  9. php mysql 经纬度_mysql,php和js根据经纬度计算距离

    根据经纬度计算距离公式 图片来自互联网 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 ...

  10. PostgreSQL(PgSQL)根据经纬度计算距离

    今天在使用PostgreSQL的PostGIS功能来实现根据经纬度计算距离和计算某一经纬度附近X米之内的地点,发现了一些错误,实现SQL语句和更正的语句如下: 计算两经纬度之间距离: select S ...

最新文章

  1. 我把面试官问的没话说了,这样好吗?
  2. EasyUI环境搭建与入门基础语法
  3. 【Java学习笔记之一】java关键字及作用
  4. 双向特征融合的数据自适应SAR图像舰船目标检测模型
  5. python大数据和java大数据的区别-Java、Python和大数据,哪个发展前景最好?
  6. delphi cxgrid读取本地image_读取多个(海康\大华)网络摄像头的视频流 (使用opencv-python),解决实时读取延迟问题...
  7. opencv-车牌识别
  8. dht11 新手原理详解(附代码)
  9. 充电IC驱动调试----移植充电IC bq25601
  10. 【visual studio】visual studio 2022 无法 复制黏贴
  11. 超强总结,用心分享丨大数据超神之路(三):Linux必备知识
  12. Android接入支付宝授权_小白教程
  13. Android中MotionEvent的来源和ViewRootImpl
  14. Windows10远程桌面连接配置
  15. 太秀了!那个在 GitHub 用文言文编程的小哥,竟从 28 万行唐诗中找出了对称矩阵...
  16. 开放api接口签名验证
  17. 2.6_4 Reids数据类型 + 基础命令
  18. 移动UI 设计有哪些文字规范
  19. 用CSS画一个针线包效果的边框
  20. 算法图解读书笔记:附程序

热门文章

  1. java房屋租赁系统源码,基于jsp+mysql+Spring开发,免费分享
  2. 跟着团子学SAP—SAP LTMC基础教程(物料主数据导入示例)
  3. 一个根据用户名生成头像的库——@multiavatar/multiavatar在react中的使用
  4. 对接微信支付服务商后商户能得到哪些服务?
  5. 2021-07-30-DJ-006 Django模型的objects方法、参数详解
  6. 通达信手机版分时图指标大全_今天教大家怎么把通达信副图指标源码导入手机通达信软件上。...
  7. 最详细的Mysql操作手册(一)
  8. PHP安卓获取gpgga,这个单片机程序中 感觉GPS的 GPGGA这条信息没有被保存
  9. 快递单中抽取关键信息【一】----基于BiGRU+CR+预训练的词向量优化
  10. C#【高级篇】 IntPtr是什么?怎么用?