知道两个经纬度计算长度
时间: 2023-11-09 16:04:22 浏览: 43
计算两个经纬度之间的长度需要使用球面三角学的公式,其中最常用的是Haversine公式。Haversine公式的计算公式如下:
```
a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlon/2)
c = 2 * atan2(sqrt(a), sqrt(1-a))
d = R * c
```
其中,Δlat和Δlon分别表示两个经纬度之间的差值,lat1和lat2分别表示两个经纬度的纬度值,R为地球半径,一般取值为6371km。
下面是一个Java代码示例,用于计算两个经纬度之间的距离:
```java
public static double distance(double lat1, double lon1, double lat2, double lon2) {
double R = 6371; // 地球半径,单位为km
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));
double distance = R * c;
return distance;
}
```
这个方法接受四个参数,分别表示两个经纬度的纬度和经度值,返回值为这两个经纬度之间的距离,单位为km。