Java 根据经纬度计算距离
时间: 2024-09-27 09:16:00 浏览: 38
在Java中,计算两个地理位置之间的距离通常需要借助地理信息系统库,如Haversine公式或者第三方库,如Google Maps API、JGeocoder等。Haversine公式是一种简单但精确的算法,用于估算地球上两点间的球面距离。以下是一个基本的Haversine公式实现示例:
```java
public class DistanceCalculator {
private static final int EARTH_RADIUS = 6371; // 地球平均半径,单位为公里
public double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
double dLat = Math.toRadians(lat2 - lat1);
double dLon = Math.toRadians(lon2 - lon1);
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`方法接受两个经纬度对`(lat1, lon1)`和`(lat2, lon2)`,然后返回它们之间的距离(以公里为单位)。注意这只是一个简化的版本,实际应用可能会考虑地球曲率的影响并进行更复杂的计算。
阅读全文