JAVA计算两个经纬度间距离
时间: 2024-10-20 12:03:43 浏览: 36
在Java中,计算两个经纬度之间的距离通常会使用Haversine公式,这个公式考虑了地球的球面形状。以下是一个简单的示例,展示了如何计算地球上两点间的直线距离:
```java
public class DistanceCalculator {
private static final int 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);
// Haversine公式的一部分
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return EARTH_RADIUS * c;
}
}
```
在这个例子中,`calculateDistance()`函数接受四个参数:两个经纬度对的经度和纬度。首先将它们转换为弧度,然后应用Haversine公式来计算距离。返回的结果是以公里为单位的距离。
如果你需要精确到千米、米或其他单位,只需调整`EARTH_RADIUS`的值即可。
阅读全文