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

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

 

posted on 2021-11-25 11:37  我是你爷爷的爷爷  阅读(1181)  评论(1编辑  收藏  举报

导航