java根据距离算经纬度_java 根据两点经纬度来算距离
时间: 2023-08-08 11:08:52 浏览: 81
Java中可以使用Haversine公式来计算两点之间的距离,公式如下:
```
public static final double R = 6371; // 地球半径,单位为km
public static double distance(double lat1, double lng1, double lat2, double lng2) {
double dLat = Math.toRadians(lat2 - lat1);
double dLng = Math.toRadians(lng2 - lng1);
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toRadians(lat1))
* Math.cos(Math.toRadians(lat2)) * Math.sin(dLng / 2) * Math.sin(dLng / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double distance = R * c;
return distance;
}
```
其中,lat1和lng1为第一个点的纬度和经度,lat2和lng2为第二个点的纬度和经度,distance为两点之间的距离。
需要注意的是,这里使用的是球面距离,也就是在地球上沿着曲面的距离,所以计算出来的距离只是一个近似值,不是精确值。如果需要更精确的距离,可以使用Vincenty公式或其他更复杂的算法。
阅读全文