/* 计算两组经纬度坐标之间的距离
* @param lat1 纬度1
* @param lng1 经度1
* @param lat2 纬度2
* @param lng2 经度2
* @param int len_type 返回值类型(1-m 2-km)
* @param int decimal 保留小数位数
* @return int
*/
function getDistance(lat1, lng1, lat2, lng2, len_type = 1, decimal = 0){
radLat1 = lat1 * 3.1415926 / 180.0;
radLat2 = lat2 * 3.1415926 / 180.0;
a = radLat1 - radLat2;
b = (lng1 * 3.1415926 / 180.0) - (lng2 * 3.1415926 / 180.0);
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;
s = Math.round(s * 1000);
if (len_type > 1) {
s /= 1000;
}
return Math.round(s);
}
发表评论 取消回复