Class Bearing


  • public abstract class Bearing
    extends Object
    Computes the distance, azimuth, and back azimuth between two lat-lon positions on the Earth's surface. Reference ellipsoid is the WGS-84 by default. You may use a default Earth (EarthEllipsoid.WGS84) or you may define your own using a ucar.unidata.geoloc.Earth object.
    • Constructor Detail

      • Bearing

        public Bearing()
    • Method Detail

      • calculateBearing

        public static Bearing calculateBearing​(Earth e,
                                               LatLonPoint pt1,
                                               LatLonPoint pt2)
        Calculate the bearing between the 2 points. See calculateBearing below.
        Parameters:
        e - Earth object (defines radius and flattening)
        pt1 - Point 1
        pt2 - Point 2
        Returns:
        The bearing
      • calculateBearing

        public static Bearing calculateBearing​(LatLonPoint pt1,
                                               LatLonPoint pt2)
        Calculate the bearing between the 2 points. See calculateBearing below. Uses default Earth object.
        Parameters:
        pt1 - Point 1
        pt2 - Point 2
        Returns:
        The bearing
      • calculateBearing

        public static Bearing calculateBearing​(double lat1,
                                               double lon1,
                                               double lat2,
                                               double lon2)
        Computes distance (in km), azimuth (degrees clockwise positive from North, 0 to 360), and back azimuth (degrees clockwise positive from North, 0 to 360), from latitude-longituide point pt1 to latitude-longituide pt2. Uses default Earth object.
        Parameters:
        lat1 - Lat of point 1
        lon1 - Lon of point 1
        lat2 - Lat of point 2
        lon2 - Lon of point 2
        Returns:
        a Bearing object with distance (in km), azimuth from pt1 to pt2 (degrees, 0 = north, clockwise positive)
      • findPoint

        public static LatLonPoint findPoint​(Earth e,
                                            LatLonPoint pt1,
                                            double az,
                                            double dist)
        Calculate a position given an azimuth and distance from another point.
        Parameters:
        e - Earth object (defines radius and flattening)
        pt1 - Point 1
        az - azimuth (degrees)
        dist - distance from the point (km)
        Returns:
        The LatLonPoint
      • findPoint

        public static LatLonPoint findPoint​(LatLonPoint pt1,
                                            double az,
                                            double dist)
        Calculate a position given an azimuth and distance from another point. Uses default Earth.
        Parameters:
        pt1 - Point 1
        az - azimuth (degrees)
        dist - distance from the point (km)
        Returns:
        The LatLonPoint
      • findPoint

        public static LatLonPoint findPoint​(double lat1,
                                            double lon1,
                                            double az,
                                            double dist)
        Calculate a position given an azimuth and distance from another point. See details, below. Uses default Earth.
        Parameters:
        lat1 - latitude of starting point
        lon1 - longitude of starting point
        az - forward azimuth (degrees)
        dist - distance from the point (km)
        Returns:
        the position as a LatLonPoint
      • findPoint

        public static LatLonPoint findPoint​(Earth e,
                                            double lat1,
                                            double lon1,
                                            double az,
                                            double dist)
        Calculate a position given an azimuth and distance from another point.

        Algorithm from National Geodetic Survey, FORTRAN program "forward," subroutine "DIRCT1," by stephen j. frakes. http://www.ngs.noaa.gov/TOOLS/Inv_Fwd/Inv_Fwd.html

        Original documentation:

            SOLUTION OF THE GEODETIC DIRECT PROBLEM AFTER T.VINCENTY
            MODIFIED RAINSFORD'S METHOD WITH HELMERT'S ELLIPTICAL TERMS
            EFFECTIVE IN ANY AZIMUTH AND AT ANY DISTANCE SHORT OF ANTIPODAL
         
        Parameters:
        e - Earth object (defines radius and flattening)
        lat1 - latitude of starting point
        lon1 - longitude of starting point
        az - forward azimuth (degrees)
        dist - distance from the point (km)
        Returns:
        the position as a LatLonPoint
      • calculateBearing

        public static Bearing calculateBearing​(Earth e,
                                               double lat1,
                                               double lon1,
                                               double lat2,
                                               double lon2)
        Computes distance (in km), azimuth (degrees clockwise positive from North, 0 to 360), and back azimuth (degrees clockwise positive from North, 0 to 360), from latitude-longituide point pt1 to latitude-longituide pt2.

        Algorithm from U.S. National Geodetic Survey, FORTRAN program "inverse," subroutine "INVER1," by L. PFEIFER and JOHN G. GERGEN. See http://www.ngs.noaa.gov/TOOLS/Inv_Fwd/Inv_Fwd.html

        Original documentation: SOLUTION OF THE GEODETIC INVERSE PROBLEM AFTER T.VINCENTY MODIFIED RAINSFORD'S METHOD WITH HELMERT'S ELLIPTICAL TERMS EFFECTIVE IN ANY AZIMUTH AND AT ANY DISTANCE SHORT OF ANTIPODAL STANDPOINT/FOREPOINT MUST NOT BE THE GEOGRAPHIC POLE Reference ellipsoid is the WGS-84 ellipsoid. See http://www.colorado.edu/geography/gcraft/notes/datum/elist.html

        Parameters:
        e - Earth object (defines radius and flattening)
        lat1 - Lat of point 1
        lon1 - Lon of point 1
        lat2 - Lat of point 2
        lon2 - Lon of point 2
        Returns:
        a Bearing object with distance (in km), azimuth from pt1 to pt2 (degrees, 0 = north, clockwise positive)
      • create

        public static Bearing create​(double azimuth,
                                     double backazimuth,
                                     double distance)
        Create a Bearing object.
        Parameters:
        azimuth - the azimuth, degrees, 0 = north, clockwise positive
        backazimuth - the back azimuth, degrees, 0 = north, clockwise positive
        distance - separation in kilometers
      • getAzimuth

        public abstract double getAzimuth()
        Get the azimuth in degrees, 0 = north, clockwise positive
      • getBackAzimuth

        public abstract double getBackAzimuth()
        Get the back azimuth in degrees, 0 = north, clockwise positive
      • getDistance

        public abstract double getDistance()
        Get the distance in kilometers