public class ProjectionEllipsoid extends ExtendedOneAxisEllipsoid
This class extends the ExtendedOneAxisEllipsoid
class and provides utility methods needed for projections.
ExtendedOneAxisEllipsoid
,
Serialized FormModifier and Type | Field and Description |
---|---|
static double |
GEODETIC_PRECISION
Local precision for geodetic problem computation (in meters).
|
Constructor and Description |
---|
ProjectionEllipsoid(double ae,
double f,
Frame bodyFrame,
String name)
Constructor for the body ellipsoid.
|
Modifier and Type | Method and Description |
---|---|
double |
computeBearing(GeodeticPoint gv1,
GeodeticPoint gv2)
Compute the bearing (azimuth) between two geodetic Points.
|
double |
computeInverseMeridionalDistance(double distance)
Compute the geodetic latitude, from a distance from the equator.
|
double |
computeInverseRectifyingLatitude(double rectifyingLat)
compute geodetic latitude at a given rectifying latitude.
|
double |
computeLoxodromicDistance(GeodeticPoint p1,
GeodeticPoint p2)
Loxodromic distance between P1 and P2.This is the distance of constant bearing (or along a line in Mercator).
|
double |
computeMercatorLatitude(double geodeticLat)
Compute crescent latitude (Le) at a given geodetic latitude.
|
double |
computeMeridionalDistance(double geodeticLat)
Compute the distance from a given geodetic latitude to the equator, along a meridian.
|
double |
computeOrthodromicDistance(double lat1,
double lon1,
double lat2,
double lon2)
Compute the orthodromic distance.
|
double |
computeOrthodromicDistance(GeodeticPoint p1,
GeodeticPoint p2)
Compute the orthodromic distance between two points.
|
GeodeticPoint |
computePointAlongLoxodrome(GeodeticPoint p1,
double distance,
double azimuth)
Compute the point coordinates from an origin point, an azimuth and a distance along the rhumb
line (Loxodrome).
|
GeodeticPoint |
computePointAlongOrthodrome(GeodeticPoint p1,
double distance,
double azimuthDirection)
Compute a geodetic point along orthodrome, from a point
p1 , at a distance d ,
in a direction defined from an azimuth. |
double |
computeRadiusEastWest(double geodeticLat)
Compute radius of curvature section East/West (also called M or Re).
|
double |
computeSphericalAzimuth(GeodeticPoint p1,
GeodeticPoint p2)
Compute the spherical azimuth (clock wise) between two points.
|
List<GeodeticPoint> |
discretizeGreatCircle(GeodeticPoint from,
GeodeticPoint to,
double maxLength)
Discretize a great circle into N segments, between two points.
|
List<GeodeticPoint> |
discretizeRhumbLine(GeodeticPoint from,
GeodeticPoint to,
double maxLength)
Discretize a rhumb line into N segments, between two points.
|
double |
getEccentricity()
Get the eccentricity.
|
double[] |
getSeries()
Getter for series.
|
distanceTo, getBodyFrame, getConjugateRadius, getEquatorialRadius, getFlattening, getIntersectionPoint, getIntersectionPoints, getLocalRadius, getName, getNormal, getPVCoordinates, getTransverseRadius, setConvergenceThreshold, transform, transform
public static final double GEODETIC_PRECISION
public final double computeBearing(GeodeticPoint gv1, GeodeticPoint gv2) throws PatriusException
gv1
- geodetic point 1gv2
- geodetic point 2PatriusException
- if points are too close from each otherpublic double computeSphericalAzimuth(GeodeticPoint p1, GeodeticPoint p2)
p1
- first pointp2
- second pointpublic double computeMercatorLatitude(double geodeticLat)
geodeticLat
- geodetic latitudepublic double computeRadiusEastWest(double geodeticLat)
geodeticLat
- geodetic latitude must between : - PI/2 and PI/2public double computeLoxodromicDistance(GeodeticPoint p1, GeodeticPoint p2) throws PatriusException
p1
- Point 1p2
- Point 2PatriusException
- if latitude of one point is not between -/+ 89.999 degpublic final double computeMeridionalDistance(double geodeticLat)
geodeticLat
- geodetic latitude must between : - PI/2 and PI/2public final double computeInverseMeridionalDistance(double distance)
distance
- distance from the equatorpublic final GeodeticPoint computePointAlongLoxodrome(GeodeticPoint p1, double distance, double azimuth) throws PatriusException
p1
- initial pointdistance
- distance along the rhumb lineazimuth
- Convention used : azimuth is angle from the north direction
to the current direction in CLOCKWISE sense.PatriusException
- if computed latitudes are out of rangepublic double computeInverseRectifyingLatitude(double rectifyingLat)
rectifyingLat
- rectifying latitudepublic final double computeOrthodromicDistance(GeodeticPoint p1, GeodeticPoint p2)
p1
- first pointp2
- second pointpublic final double computeOrthodromicDistance(double lat1, double lon1, double lat2, double lon2)
lat1
- latitude point 1.lon1
- longitude point 1.lat2
- latitude point 2.lon2
- longitude point 2.public final GeodeticPoint computePointAlongOrthodrome(GeodeticPoint p1, double distance, double azimuthDirection)
p1
, at a distance d
,
in a direction defined from an azimuth. This is the direct geodetic problem.
This code is issue from Vincenty's works.p1
- Origin point.distance
- Distance to compute resulting point.azimuthDirection
- azimuth direction, convention used : azimuth is angle from the north direction
to the current direction in CLOCKWISE sense.public final List<GeodeticPoint> discretizeRhumbLine(GeodeticPoint from, GeodeticPoint to, double maxLength) throws PatriusException
from
- first geodetic pointto
- ending geodetic pointmaxLength
- This distance is used when a discretization occurs : i.e :
when the line property is not coherent with
the projection ( EnumLineProperty
). This parameter represent a distance expressed in
meters. This will be the maximal distance between two points of the projected polygon. If you set the
parameter to a value <=0 no discretization will be done.PatriusException
- if points are too close from each otherpublic final List<GeodeticPoint> discretizeGreatCircle(GeodeticPoint from, GeodeticPoint to, double maxLength)
from
- first geodetic pointto
- ending geodetic pointmaxLength
- This distance is used when a discretization occurs : i.e :
when the line property is not coherent with
the projection ( EnumLineProperty
). This parameter represent a distance expressed in
meters. This will be the maximal distance between two points of the projected polygon. If you set the
parameter to a value <=0, no discretization will be done.public double getEccentricity()
public double[] getSeries()
Copyright © 2018 CNES. All Rights Reserved.