用java代码实现两点经纬度计算距离
时间: 2023-08-30 14:06:27 浏览: 85
java根据两点经纬度计算距离
可以使用以下代码实现两点经纬度计算距离:
```java
public class DistanceCalculator {
private static final double EARTH_RADIUS = 6371.0; // 地球半径,单位为 km
public static double getDistance(double lat1, double lng1, double lat2, double lng2) {
double radLat1 = Math.toRadians(lat1);
double radLat2 = Math.toRadians(lat2);
double a = radLat1 - radLat2;
double b = Math.toRadians(lng1) - Math.toRadians(lng2);
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)));
return s * EARTH_RADIUS;
}
}
```
其中,`lat1`、`lng1`、`lat2`、`lng2` 分别是两个点的纬度和经度,单位为度。`getDistance` 方法返回的是两点之间的距离,单位为 km。
示例代码如下:
```java
public class Main {
public static void main(String[] args) {
double lat1 = 39.908722; // 北京市经纬度
double lng1 = 116.397499;
double lat2 = 31.230416; // 上海市经纬度
double lng2 = 121.473701;
double distance = DistanceCalculator.getDistance(lat1, lng1, lat2, lng2);
System.out.println("北京市和上海市之间的距离为:" + distance + " km");
}
}
```
输出结果为:北京市和上海市之间的距离为:1069.3869561575637 km
阅读全文