已知两个经纬度计算方位角


 /**
     * 计算两点角度  --  起点坐标为参考坐标,纵坐标为轴取角度
     * @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