/***
* @param lat1 经
* @param lng1 维度
* @param lat2 经
* @param lng2 维度
* @return 获取两点之间距离
*
*/
public static double getDistance(double lat1, double lng1, double lat2, double lng2){
/* 计算两个经纬度的距离(千米)
*/
double radLat1 = lat1*Math.PI / 180.0;
double radLat2 = lat2*Math.PI / 180.0;
double a = radLat1 - radLat2;
double b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0;
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 *6378.137 ;// EARTH_RADIUS;
s = Math.round(s * 10000) / 10000;
return ArithUtil.toFloat(s,2);
}
=ArithUtil=
public static float toFloat(double value1, Integer number) {
BigDecimal decimal = BigDecimal.valueOf(value1);
return decimal.setScale(number, BigDecimal.ROUND_DOWN).floatValue();
}
网友评论