项目中要求一个根据坐标计算,长度的函数写了 贴上 var EARTH_RADIUS = 6378137.0; //单位M var PI = Math.PI; function getRad(d){ return d*PI/180.0; } /** * caculate the great circle distance * @param {Object} latlng1 * @param {Object} latlng2 */ function getGreatCircleDistance(latlng1,latlng2){ var radLat1 = getRad(latlng1.lat); var radLat2 = getRad(latlng2.lat); var a = radLat1 - radLat2; var b = getRad(latlng1.lon) - getRad(latlng2.lon); 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; s = Math.round(s*10000)/10000.0; alert(s); return s; }