JavaScript 根据两点的经纬度坐标,计算实际的直线距离

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 

var FINAL = 6378137.0  
          
        /** 
         * 求某个经纬度的值的角度值 
         * @param {Object} d 
         */  
        function calcDegree(d){  
            return d*Math.PI/180.0 ;  
        }  
          
        /** 
         * 根据两点经纬度值,获取两地的实际相差的距离 
         * @param {Object} f    第一点的坐标位置[latitude,longitude] 
         * @param {Object} t    第二点的坐标位置[latitude,longitude] 
         */  
        function calcDistance(f,t){  
            var flat = calcDegree(f[0]) ;  
            var flng = calcDegree(f[1]) ;  
            var tlat = calcDegree(t[0]) ;  
            var tlng = calcDegree(t[1])  ;  
              
            var result = Math.sin(flat)*Math.sin(tlat) ;  
            result += Math.cos(flat)*Math.cos(tlat)*Math.cos(flng-tlng) ;  
            return Math.acos(result)*FINAL ;  
        }  
          
        window.alert("上海到北京的距离: "+calcDistance([31.22219703210317,121.475830078125],[39.90130858574735,116.400146484375]));

转载于:https://my.oschina.net/zhaoyou/blog/9078

你可能感兴趣的:(JavaScript 根据两点的经纬度坐标,计算实际的直线距离)