Java 工具类 通过两个点经纬度计算距离
时间: 2023-07-05 12:35:56 浏览: 129
可以使用 Haversine 公式来计算两个点之间的距离,这个公式需要用到两个点的经纬度信息。下面是一个 Java 工具类的实现,可以通过传入两个点的经纬度信息来计算它们之间的距离:
```java
public class DistanceCalculator {
private static final double EARTH_RADIUS = 6371.0; // 地球半径,单位 km
public static double calculate(double lat1, double lon1, double lat2, double lon2) {
double dLat = Math.toRadians(lat2 - lat1);
double dLon = Math.toRadians(lon2 - lon1);
double lat1Rad = Math.toRadians(lat1);
double lat2Rad = Math.toRadians(lat2);
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1Rad) * Math.cos(lat2Rad);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return EARTH_RADIUS * c;
}
}
```
这个工具类中,`calculate` 方法接收四个参数,分别表示两个点的经纬度信息,返回值是这两个点之间的距离,单位为千米。
阅读全文