最近项目中遇到了,在两个经纬度的数据之间获取之前的距离,查了半天没有找到,以下是我实现的代码
{
String lon ="104.075931";
String yg_lon ="106.513309";
String lat ="30.651651";
String yg_lat ="29.611235";
final double EARTH_RADIUS = 6378137;
// 纬度
double lat1 = Math.toRadians(Double.parseDouble("".equals(lat)? "0.00" :lat));
double lat2 = Math.toRadians(Double.parseDouble("".equals(yg_lat)? "0.00" :yg_lat));
// 经度
double lng1 = Math.toRadians(Double.parseDouble("".equals(lon)? "0.00" :lon));
double lng2 = Math.toRadians(Double.parseDouble("".equals(yg_lon)? "0.00" :yg_lon));
// 纬度之差
double a = lat1 - lat2;
// 经度之差
double b = lng1 - lng2;
// 计算两点距离的公式
double distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
// 弧长乘地球半径, 返回单位: 米
distance = distance * EARTH_RADIUS;
return distance;
}