Package ucar.unidata.geoloc
Class Bearing
- java.lang.Object
-
- ucar.unidata.geoloc.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 Summary
Constructors Constructor Description Bearing()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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.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.static Bearing
calculateBearing(Earth e, LatLonPoint pt1, LatLonPoint pt2)
Calculate the bearing between the 2 points.static Bearing
calculateBearing(LatLonPoint pt1, LatLonPoint pt2)
Calculate the bearing between the 2 points.static Bearing
create(double azimuth, double backazimuth, double distance)
Create a Bearing object.static LatLonPoint
findPoint(double lat1, double lon1, double az, double dist)
Calculate a position given an azimuth and distance from another point.static LatLonPoint
findPoint(Earth e, double lat1, double lon1, double az, double dist)
Calculate a position given an azimuth and distance from another point.static LatLonPoint
findPoint(Earth e, LatLonPoint pt1, double az, double dist)
Calculate a position given an azimuth and distance from another point.static LatLonPoint
findPoint(LatLonPoint pt1, double az, double dist)
Calculate a position given an azimuth and distance from another point.abstract double
getAzimuth()
Get the azimuth in degrees, 0 = north, clockwise positiveabstract double
getBackAzimuth()
Get the back azimuth in degrees, 0 = north, clockwise positiveabstract double
getDistance()
Get the distance in kilometers
-
-
-
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 1pt2
- 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 1pt2
- 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 1lon1
- Lon of point 1lat2
- Lat of point 2lon2
- 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 1az
- 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 1az
- 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 pointlon1
- longitude of starting pointaz
- 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.htmlOriginal 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 pointlon1
- longitude of starting pointaz
- 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 1lon1
- Lon of point 1lat2
- Lat of point 2lon2
- 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 positivebackazimuth
- the back azimuth, degrees, 0 = north, clockwise positivedistance
- 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
-
-