java怎么根据经纬度求距离
时间: 2023-11-03 07:17:28 浏览: 87
在Java中,可以使用Haversine公式来计算两个经纬度点之间的距离。Haversine公式基于球面三角形的余弦定理来计算球面上两点之间的距离。
下面是一个示例代码,可以根据两个经纬度点求出它们之间的距离(单位为千米):
```java
public static double distance(double lat1, double lon1, double lat2, double lon2) {
final double R = 6371.0; // 地球半径,单位千米
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 R * c;
}
```
其中,lat1和lon1表示第一个经纬度点的纬度和经度,lat2和lon2表示第二个经纬度点的纬度和经度。函数返回值为两个经纬度点之间的距离(单位为千米)。
阅读全文