public abstract class AbstractProjection extends Object implements IProjection
Constructor and Description |
---|
AbstractProjection(GeodeticPoint pivotIn,
EllipsoidBodyShape shape)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
List<GeodeticPoint> |
applyInverseTo(double[] x,
double[] y)
Inversion transformation of arrays of x and y projected coordinates.
|
List<GeodeticPoint> |
applyInverseTo(List<Vector2D> list)
Inverse Projects a list of Vector2D (projected points) with a given projection.
|
List<Vector2D> |
applyTo(List<GeodeticPoint> list)
Project a list of GeodeticPoints with a given projection.
|
List<Vector2D> |
applyToAndDiscretize(GeodeticPoint from,
GeodeticPoint to,
double maxLength,
boolean lastIncluded)
Project two points, then discretize 2D the line.
|
List<Vector2D> |
discretize(Vector2D p1,
Vector2D p2,
double maxLenght,
boolean p2Included)
Generate additional vertices between two points.
|
List<Vector2D> |
discretizeAndApplyTo(List<GeodeticPoint> list,
EnumLineProperty ltype,
double maxLength)
Discretizes a polygon conforming to a line property directive, and a maximum length of discretization.
|
List<Vector2D> |
discretizeCircleAndApplyTo(List<GeodeticPoint> list,
double maxLength)
Discretize following great circle lines between vertices of polygon and project obtained points.
|
List<Vector2D> |
discretizeRhumbAndApplyTo(List<GeodeticPoint> list,
double maxLength)
Project a rhumb line polygon, with the given projection.
|
abstract double |
getDistortionFactor(double latitude)
Returns the scale factor at a specific latitude.
|
GeodeticPoint |
getPivotPoint()
Get the projection pivot point.
|
EllipsoidBodyShape |
getReference()
Get the system of reference used.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
applyInverseTo, applyInverseTo, applyTo, applyTo, canMap, getLineProperty, getMaximumEastingValue, getMaximumLatitude, isConformal, isEquivalent
public AbstractProjection(GeodeticPoint pivotIn, EllipsoidBodyShape shape)
pivotIn
- pivot point used for projection.shape
- reference shape used for projection.public final EllipsoidBodyShape getReference()
getReference
in interface IProjection
public final GeodeticPoint getPivotPoint()
public abstract double getDistortionFactor(double latitude)
latitude
- latitudepublic final List<Vector2D> discretize(Vector2D p1, Vector2D p2, double maxLenght, boolean p2Included)
p1
- Projected point 1p2
- Projected point 2maxLenght
- distance consistent with the projection scale.
For a projection, this distance is correct only around pivot pointp2Included
- p2 is included only if truepublic final List<Vector2D> discretizeAndApplyTo(List<GeodeticPoint> list, EnumLineProperty ltype, double maxLength) throws PatriusException
list
- of points defining the polygonltype
- line typemaxLength
- 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 complex polygon discretization failspublic final List<Vector2D> discretizeCircleAndApplyTo(List<GeodeticPoint> list, double maxLength) throws PatriusException
list
- geodetic points listmaxLength
- 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
- thrown if one projection could not be computedEnumLineProperty.GREAT_CIRCLE
,
EnumLineProperty.STRAIGHT
public final List<Vector2D> discretizeRhumbAndApplyTo(List<GeodeticPoint> list, double maxLength) throws PatriusException
If the projection type of line is rhumb, points will be directly projected and then discretized.
Else the discretization will be done by using ProjectionEllipsoidUtils
methods to compute points along a
loxodrom, and projection will be done afterwards.
list
- list of geodetic vectorsmaxLength
- 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 dicretization will be done.PatriusException
- thrown if complex polygon discretization failspublic final List<Vector2D> applyToAndDiscretize(GeodeticPoint from, GeodeticPoint to, double maxLength, boolean lastIncluded) throws PatriusException
from
- the initial geodetic pointto
- the final geodetic pointmaxLength
- maximal length for a leg, after discretization. If maxlength <=0, no discretization is done.lastIncluded
- the last point (to) is included if truePatriusException
- thrown if projection of start or end point could not be computedpublic final List<Vector2D> applyTo(List<GeodeticPoint> list) throws PatriusException
list
- list of geodetic pointsPatriusException
- thrown if one projection could not be computedpublic final List<GeodeticPoint> applyInverseTo(List<Vector2D> list) throws PatriusException
list
- list of projected pointsPatriusException
- thrown if one inverse projection could not be computedpublic final List<GeodeticPoint> applyInverseTo(double[] x, double[] y) throws PatriusException
x
- x coordinates of projected pointsy
- y coordinates of projected pointsPatriusException
- thrown if arrays have not the same lengthCopyright © 2019 CNES. All rights reserved.