JAVA中计算经纬度之间的距离

1.导入需要的JAR包

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/org.gavaghan/geodesy -->
<dependency>
    <groupId>org.gavaghan</groupId>
    <artifactId>geodesy</artifactId>
    <version>1.1.3</version>
</dependency>

  

2.代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Test
public void testGPS(){
    //给定两个坐标系,计算两点相差距离
    GlobalCoordinates source = new GlobalCoordinates(29.490295, 106.486654);
    GlobalCoordinates target = new GlobalCoordinates(29.615467, 106.581515);
    //Sphere坐标的计算结果
    double meter1 =getDistanceMeter(source,target,Ellipsoid.Sphere);
    //WGS84坐标系计算结果
    double meter2 = getDistanceMeter(source,target,Ellipsoid.WGS84);
 
    //计算结果Sphere 坐标系的计算结果与 WGS84坐标系的计算结果存在几十米的误差,不同的坐标系精度不同,
    System.out.println("Sphere 坐标系的计算结果是" + meter1 + "M");
    System.out.println("wGS84  坐标系的计算结果是" + meter2 + "M");
}
 
 
 
public static  double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid){
    //创建GeodeticCalculator,调用计算方法,传入坐标系,经纬度用于计算距离
    GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo);
    return geoCurve.getEllipsoidalDistance();
}<br><br>如有错误,请指正! 联系wx 15514769010

  

posted @   几多荒唐乀  阅读(1287)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示