java 算2个经纬度距离
时间: 2023-08-29 21:02:47 浏览: 90
在Java中,可以使用Haversine公式来计算两个经纬度之间的距离。这个公式基于球面上两点之间的弧长。
以下是一个Java代码示例,用于计算两个经纬度之间的距离:
```java
public class DistanceCalculator {
private static final double EARTH_RADIUS = 6371; // 地球半径,单位为千米
public static double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
double dLat = Math.toRadians(lat2 - lat1);
double dLon = Math.toRadians(lon2 - lon1);
lat1 = Math.toRadians(lat1);
lat2 = Math.toRadians(lat2);
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return EARTH_RADIUS * c;
}
public static void main(String[] args) {
double lat1 = 31.2244; // 第一个点的纬度
double lon1 = 121.4758; // 第一个点的经度
double lat2 = 39.9042; // 第二个点的纬度
double lon2 = 116.4074; // 第二个点的经度
double distance = calculateDistance(lat1, lon1, lat2, lon2);
System.out.println("两个经纬度之间的距离为:" + distance + "千米");
}
}
```
以上代码使用了Haversine公式来计算两个经纬度之间的距离,并输出结果。其中,lat1和lon1是第一个点的纬度和经度,lat2和lon2是第二个点的纬度和经度。计算结果以千米为单位输出。
阅读全文
相关推荐













