Class Bearing

java.lang.Object
ucar.unidata.geoloc.Bearing

public 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 Details

    • Bearing

      public Bearing(double azimuth, double backazimuth, double distance)
  • Method Details

    • calculateBearing

      @Deprecated public static Bearing calculateBearing(Earth e, LatLonPoint pt1, LatLonPoint pt2, Bearing result)
      Deprecated.
      do not use
    • 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 & flattening)
      pt1 - Point 1
      pt2 - Point 2
      Returns:
      The bearing
    • calculateBearing

      @Deprecated public static Bearing calculateBearing(LatLonPoint pt1, LatLonPoint pt2, Bearing result)
      Deprecated.
      do not use
    • 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

      @Deprecated public static Bearing calculateBearing(double lat1, double lon1, double lat2, double lon2, Bearing result)
      Deprecated.
      do not use
    • 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)
    • calculateBearing

      @Deprecated public static Bearing calculateBearing(Earth e, double lat1, double lon1, double lat2, double lon2, Bearing result)
      Deprecated.
      do not use
    • findPoint

      public static LatLonPointImpl findPoint(Earth e, LatLonPoint pt1, double az, double dist, LatLonPointImpl result)
      Deprecated.
      will return LatLonPoint in 6.
      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)
      result - Object to use if non-null
      Returns:
      The LatLonPoint
      See Also:
    • findPoint

      public static LatLonPointImpl findPoint(LatLonPoint pt1, double az, double dist, LatLonPointImpl result)
      Deprecated.
      will return LatLonPoint in 6.
      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)
      result - Object to use if non-null
      Returns:
      The LatLonPoint
      See Also:
    • findPoint

      public static LatLonPointImpl findPoint(double lat1, double lon1, double az, double dist, LatLonPointImpl result)
      Deprecated.
      will return LatLonPoint in 6.
      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)
      result - Object to use if non-null
      Returns:
      the position as a LatLonPointImpl
    • findPoint

      @Deprecated public static LatLonPointImpl findPoint(Earth e, double lat1, double lon1, double az, double dist, LatLonPointImpl result)
      Deprecated.
      use findPoint(Earth e, double lat1, double lon1, double az, double dist)
    • findPoint

      public static LatLonPoint findPoint(Earth e, double lat1, double lon1, double az, double dist)
      Deprecated.
      will return LatLonPoint in 6.
      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 LatLonPointImpl
    • 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

      Requires close to 1.4 E-5 seconds wall clock time per call on a 550 MHz Pentium with Linux 7.2.

      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)
    • getAngle

      public double getAngle()
      Get the azimuth in degrees, 0 = north, clockwise positive
      Returns:
      azimuth in degrees
    • getBackAzimuth

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

      public double getDistance()
      Get the distance in kilometers
      Returns:
      distance in km
    • toString

      public String toString()
      Overrides:
      toString in class Object