阅读:4295 次 编辑日期:2014-01-20
function calculate(start,end){ //start 起点经纬度,数据格式 start = {lon:,lat:} //end 终点定位度,数据格式 end = {lon:,lat:} if(start.lon != null && start.lat != null && end.lon != null && end.lat != null){ function rad(d){ return d * Math.PI / 180.0; } var slon = start.lon / 3600000; var slat = start.lat / 3600000; var elon = end.lon / 3600000; var elat = end.lat / 3600000; //赤道半径 var EARTH_RADIUS = 6378137; var radLat1 = rad(slat); var radLat2 = rad(elat); var a = radLat1 - radLat2; var b = rad(slon) - rad(elon); var 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; //返回公里 var kilometer = Math.round(s * 10000) / 10000000; var kl = kilometer + ""; if(kl.length > 4){ //保留两位小数 return kilometer.toFixed(2); } else{ return kilometer; } } return ""; };