获取向量的另一个坐标


1.已知一个点的坐标和点的方位角,角度0-360

2.获取点坐标方位角的方向上的另一个点的坐标(指定距离范围)

其中radians代表方位角

    /**
     * 获取向量的另一个坐标
     * @param latLonReq
     * @param range
     * @return
     */
    public static LatLonReq getDegreesCoordinates(LatLonReq latLonReq, double range){
        double distance = Optional.ofNullable(range).orElse(1000.0);
        double latitude = latLonReq.getLatitude();
        double longitude = latLonReq.getLongitude();
        double radians = latLonReq.getRadians();
        double cosLine = Math.cos(Math.toRadians(radians)) * distance;
        double sinLine = Math.sin(Math.toRadians(radians)) * distance;
        double diffLat = cosLine / oneLatitudeDistance();
        double diffLon = sinLine / oneLongitudeDistance(latitude, longitude);
        double reLat = diffLat + latitude;
        double reLon = diffLon + longitude;
        return new LatLonReq(reLat, reLon);
    }
    /**
     * 1纬度距离
     * @return
     */
    public static double oneLatitudeDistance(){
        return PI * R / 180;
    }
    /**
     * 纬度相同,1经度距离
     * @param latitude
     * @param longitude
     * @return
     */
    public static double oneLongitudeDistance(double latitude, double longitude){
        LatLonReq latLonReq = new LatLonReq(latitude, longitude);
        double longitudeEnd = longitude + 1.0;
        return getDistance(latLonReq, new LatLonReq(latitude, longitudeEnd));
    }