用java计算两个城市之间的距离
时间: 2024-02-02 17:04:14 浏览: 92
WebserviceRestful:Restiful webservice 项目,用于计算两个城市之间的距离
可以使用经纬度坐标计算两个城市之间的距离。
以下是使用Java计算两个城市之间距离的示例代码:
```java
import java.lang.Math;
public class DistanceCalculator {
public static void main(String[] args) {
// 定义两个城市的经纬度坐标
double lat1 = 31.2304;
double lon1 = 121.4737;
double lat2 = 39.9042;
double lon2 = 116.4074;
// 计算两个城市之间的距离
double distance = calculateDistance(lat1, lon1, lat2, lon2);
// 输出结果
System.out.println("两个城市之间的距离为:" + distance + "公里");
}
/**
* 根据经纬度坐标计算两个点之间的距离
* @param lat1 点1的纬度
* @param lon1 点1的经度
* @param lat2 点2的纬度
* @param lon2 点2的经度
* @return 两个点之间的距离,单位:公里
*/
public static double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
final double EARTH_RADIUS = 6378.137; // 地球半径,单位:千米
double radLat1 = Math.toRadians(lat1);
double radLat2 = Math.toRadians(lat2);
double a = radLat1 - radLat2;
double b = Math.toRadians(lon1) - Math.toRadians(lon2);
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 10000) / 10000; // 四舍五入保留4位小数
return s;
}
}
```
该示例代码使用了Haversine公式来计算地球表面两个点之间的距离。需要注意的是,该算法的精度可能会受到地球形状的影响,在极端情况下可能会产生一些误差。
阅读全文