已知兩個經緯度計算方位角


 /**
     * 計算兩點角度  --  起點坐標為參考坐標,縱坐標為軸取角度
     * @param latitude
     * @param longitude
     * @param latitudeEnd
     * @param longitudeEnd
     * @return
     */
    public static double calculateDegrees(double latitude, double longitude, double latitudeEnd, double longitudeEnd){
        double distance = getDistanceByLatLon(latitude, longitude, latitudeEnd, longitudeEnd);
        double disCos = oneLatitudeDistance() * Math.abs(latitude - latitudeEnd);
        double cosDe = disCos / distance;
        double acos = Math.acos(cosDe);
        double degrees = Math.toDegrees(acos);
        if(latitudeEnd > latitude && longitudeEnd < longitude){
            return Math.round(360 - degrees);
        }
        if(latitudeEnd < latitude && longitudeEnd > longitude){
            return Math.round(180 - degrees);
        }
        if(latitudeEnd < latitude && longitudeEnd < longitude){
            return Math.round(180 + degrees);
        }
        return Math.round(degrees);
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM