public final class ProjectionEllipsoidUtils extends Object
EllipsoidBodyShape| Modifier and Type | Field and Description |
|---|---|
static double |
ELLIPSOID_PRECISION
Local precision for ellipsoid 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 ellipsoid latitude, from a distance from the equator.
|
static double |
computeInverseRectifyingLatitude(double rectifyingLat,
OneAxisEllipsoid shape)
compute ellipsoid latitude at a given rectifying latitude. rectifying latitude -> giving sphere that has correct
distances along the meridians.
|
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 ellipsoidLat,
OneAxisEllipsoid shape)
Compute crescent latitude (Le) at a given ellipsoid latitude. also called Mercator latitude.
|
static double |
computeMeridionalDistance(double ellipsoidLat,
OneAxisEllipsoid shape)
Compute the distance from a given ellipsoid 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 ellipsoidLat,
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 ELLIPSOID_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 shapeOneAxisEllipsoidpublic 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 ellipsoidLat,
OneAxisEllipsoid shape)
ellipsoidLat - Ellipsoid latitudeshape - Body shapepublic static double computeRadiusEastWest(double ellipsoidLat,
OneAxisEllipsoid shape)
ellipsoidLat - Ellipsoid 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 shapeOneAxisEllipsoidpublic static final double computeMeridionalDistance(double ellipsoidLat,
OneAxisEllipsoid shape)
ellipsoidLat - Ellipsoid 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 OneAxisEllipsoidpublic 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 OneAxisEllipsoidpublic 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 ellipsoid 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 OneAxisEllipsoidpublic 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 © 2025 CNES. All rights reserved.