java语言通过经纬度计算两个点之间的距离
时间: 2023-05-31 12:03:50 浏览: 204
可以使用 Haversine 公式来计算地球上两个经纬度之间的距离。下面是一个 Java 方法示例:
```java
public static double haversine(double lat1, double lon1, double lat2, double lon2) {
final double R = 6371; // 地球半径(单位:km)
double latDistance = Math.toRadians(lat2 - lat1);
double lonDistance = Math.toRadians(lon2 - lon1);
double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
+ Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
* Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return R * c;
}
```
其中,`lat1` 和 `lon1` 是第一个点的纬度和经度,`lat2` 和 `lon2` 是第二个点的纬度和经度。返回值为两个点之间的距离,单位为 km。
示例用法:
```java
double dist = haversine(39.9, 116.4, 31.2, 121.5); // 北京和上海之间的距离
System.out.println("Distance: " + dist + " km");
```
输出:
```
Distance: 1061.9396223070136 km
```
阅读全文