帮我写一段Java代码,能够通过输入的两个经纬度坐标,计算两者的距离,返回结果单位为米
时间: 2024-03-05 19:52:18 浏览: 112
可以使用下面的 Java 代码来计算两点经纬度之间的距离:
```java
import static java.lang.Math.*;
public class DistanceCalculator {
private static final double EARTH_RADIUS = 6371000; // 地球平均半径,单位为米
public static double calculate(double lat1, double lon1, double lat2, double lon2) {
double deltaLat = toRadians(lat2 - lat1);
double deltaLon = toRadians(lon2 - lon1);
double a = sin(deltaLat / 2) * sin(deltaLat / 2)
+ cos(toRadians(lat1)) * cos(toRadians(lat2))
* sin(deltaLon / 2) * sin(deltaLon / 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
return EARTH_RADIUS * c;
}
public static void main(String[] args) {
double lat1 = 31.2234, lon1 = 121.4758; // 第一个点的经纬度
double lat2 = 39.9042, lon2 = 116.4074; // 第二个点的经纬度
double distance = calculate(lat1, lon1, lat2, lon2);
System.out.println("两点距离:" + distance + " 米");
}
}
```
在上述代码中,calculate() 方法接收四个参数,分别为两个点的纬度和经度。在方法内部,先将经纬度转换为弧度,然后使用 Haversine 公式计算两点之间的距离。最后将距离乘以地球平均半径,得到最终结果。在 main() 方法中,演示了如何使用该方法计算两点之间的距离,并输出结果。
阅读全文