public final class ProjectionEllipsoidUtils extends Object
EllipsoidBodyShape
Modifier and Type | Field and Description |
---|---|
static double |
GEODETIC_PRECISION
Local precision for geodetic problem computation (in meters).
|
Modifier and Type | Method and Description |
---|---|
static double |
computeBearing(EllipsoidPoint p1,
EllipsoidPoint p2)
Compute the bearing (azimuth) between two points.
|
static EllipsoidPoint |
computeCenterPointAlongLoxodrome(EllipsoidPoint p1,
EllipsoidPoint p2)
Compute center point between two points along a loxodrome.
|
static double |
computeInverseMeridionalDistance(double distance,
OneAxisEllipsoid shape)
Compute the geodetic latitude, from a distance from the equator.
|
static double |
computeInverseRectifyingLatitude(double rectifyingLat,
OneAxisEllipsoid shape)
compute geodetic latitude at a given rectifying latitude.
|
static double |
computeLoxodromicDistance(EllipsoidPoint p1,
EllipsoidPoint p2)
Loxodromic distance between P1 and P2.This is the distance of constant bearing (or along a line in Mercator).
|
static double |
computeMercatorLatitude(double geodeticLat,
OneAxisEllipsoid shape)
Compute crescent latitude (Le) at a given geodetic latitude.
|
static double |
computeMeridionalDistance(double geodeticLat,
OneAxisEllipsoid shape)
Compute the distance from a given geodetic latitude to the equator, along a meridian.
|
static double |
computeOrthodromicDistance(double lat1,
double lon1,
double lat2,
double lon2,
OneAxisEllipsoid shape)
Compute the orthodromic distance.
|
static double |
computeOrthodromicDistance(EllipsoidPoint p1,
EllipsoidPoint p2)
Compute the orthodromic distance between two points.
|
static EllipsoidPoint |
computePointAlongLoxodrome(EllipsoidPoint p1,
double distance,
double azimuth)
Compute the point coordinates from an origin point, an azimuth and a distance along the rhumb line (Loxodrome).
|
static EllipsoidPoint |
computePointAlongOrthodrome(EllipsoidPoint p1,
double distance,
double azimuthDirection)
Compute a point along orthodrome, from a point
p1 , at a distance d , in a
direction defined from an azimuth. |
static double |
computeRadiusEastWest(double geodeticLat,
OneAxisEllipsoid shape)
Compute radius of curvature section East/West (also called M or Re).
|
static double |
computeSphericalAzimuth(EllipsoidPoint p1,
EllipsoidPoint p2)
Compute the spherical azimuth (clock wise) between two points.
|
static List<EllipsoidPoint> |
discretizeGreatCircle(EllipsoidPoint from,
EllipsoidPoint to,
double maxLength)
Discretize a great circle into N segments, between two points.
|
static List<EllipsoidPoint> |
discretizeRhumbLine(EllipsoidPoint from,
EllipsoidPoint to,
double maxLength)
Discretize a rhumb line into N segments, between two points.
|
static double |
getEccentricity(OneAxisEllipsoid shape)
Getter for the eccentricity.
|
static double[] |
getSeries(OneAxisEllipsoid shape)
Getter for the series.
|
public static final double GEODETIC_PRECISION
public static final double computeBearing(EllipsoidPoint p1, EllipsoidPoint p2) throws PatriusException
p1
- first pointp2
- second pointPatriusException
- if points aren't associated to the same body shapeOneAxisEllipsoid
public static double computeSphericalAzimuth(EllipsoidPoint p1, EllipsoidPoint p2) throws PatriusException
p1
- first pointp2
- second pointPatriusException
- if points aren't associated to the same body shapepublic static double computeMercatorLatitude(double geodeticLat, OneAxisEllipsoid shape)
geodeticLat
- Geodetic latitudeshape
- Body shapepublic static double computeRadiusEastWest(double geodeticLat, OneAxisEllipsoid shape)
geodeticLat
- Geodetic latitude must between : - PI/2 and PI/2shape
- Body shapepublic static double computeLoxodromicDistance(EllipsoidPoint p1, EllipsoidPoint p2) throws PatriusException
p1
- Point 1p2
- Point 2PatriusException
- if points aren't associated to the same body shapeOneAxisEllipsoid
public static final double computeMeridionalDistance(double geodeticLat, OneAxisEllipsoid shape)
geodeticLat
- Geodetic latitude must between : - PI/2 and PI/2shape
- Body shapepublic static final double computeInverseMeridionalDistance(double distance, OneAxisEllipsoid shape)
distance
- Distance from the equatorshape
- Body shapepublic static final EllipsoidPoint computePointAlongLoxodrome(EllipsoidPoint 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 sensePatriusException
- if the body shape isn't a OneAxisEllipsoid
public static double computeInverseRectifyingLatitude(double rectifyingLat, OneAxisEllipsoid shape)
rectifyingLat
- Rectifying latitudeshape
- Body shapepublic static final double computeOrthodromicDistance(EllipsoidPoint p1, EllipsoidPoint p2) throws PatriusException
p1
- First pointp2
- Second pointPatriusException
- if points aren't associated to the same body shape
if the body shape isn't a OneAxisEllipsoid
public static final double computeOrthodromicDistance(double lat1, double lon1, double lat2, double lon2, OneAxisEllipsoid shape)
lat1
- Latitude point 1lon1
- Longitude point 1lat2
- Latitude point 2lon2
- Longitude point 2shape
- Body shapepublic static final EllipsoidPoint computePointAlongOrthodrome(EllipsoidPoint p1, double distance, double azimuthDirection) throws PatriusException
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 pointdistance
- Distance to compute resulting pointazimuthDirection
- Azimuth direction, convention used : azimuth is angle from the north direction to the current direction in
CLOCKWISE sensePatriusException
- if the body shape isn't a OneAxisEllipsoid
public static final List<EllipsoidPoint> discretizeRhumbLine(EllipsoidPoint from, EllipsoidPoint to, double maxLength) throws PatriusException
from
- First pointto
- Ending 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 aren't associated to the same body shapepublic static final List<EllipsoidPoint> discretizeGreatCircle(EllipsoidPoint from, EllipsoidPoint to, double maxLength) throws PatriusException
from
- First pointto
- Ending 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 aren't associated to the same body shapepublic static double getEccentricity(OneAxisEllipsoid shape)
shape
- Body shapepublic static double[] getSeries(OneAxisEllipsoid shape)
shape
- Body shapepublic static EllipsoidPoint computeCenterPointAlongLoxodrome(EllipsoidPoint p1, EllipsoidPoint p2) throws PatriusException
p1
- First pointp2
- Second pointPatriusException
- if computation failedCopyright © 2023 CNES. All rights reserved.