Cesium 空間距離量測

            var EARTH_RADIUS = 6371.0;
            function Distance(lat1,lon1,lat2,lon2)
            {
                lat1 = ConvertDegreesToRadians(lat1);
                lon1 = ConvertDegreesToRadians(lon1);
                lat2 = ConvertDegreesToRadians(lat2);
                lon2 = ConvertDegreesToRadians(lon2);
                var vLon = Math.abs(lon1 - lon2);
                var vLat = Math.abs(lat1 - lat2);
                var h = HaverSin(vLat) + Math.cos(lat1) * Math.cos(lat2) * HaverSin(vLon);
                var distance = 2 * EARTH_RADIUS * Math.asin(Math.sqrt(h));
                return (distance*1000).toFixed(2);
            }
            function HaverSin(theta)
            {
                var v = Math.sin(theta / 2);
                return v * v;
            }
            function ConvertDegreesToRadians(degrees)
            {
                return degrees * Math.PI / 180;
            }

 

直接調用Distance函數,輸入兩點各自經緯度即可返回兩點空間距離。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章