Class Orthographic
java.lang.Object
org.apache.sis.io.wkt.FormattableObject
org.apache.sis.referencing.operation.transform.AbstractMathTransform
org.apache.sis.referencing.operation.transform.AbstractMathTransform2D
org.apache.sis.referencing.operation.projection.NormalizedProjection
org.apache.sis.referencing.operation.projection.Orthographic
- All Implemented Interfaces:
Serializable
,Parameterized
,LenientComparable
,org.opengis.referencing.operation.MathTransform
,org.opengis.referencing.operation.MathTransform2D
Orthographic projection (EPSG:9840).
See the following references for an overview:
Description
This is a perspective azimuthal (planar) projection that is neither conformal nor equal-area. It resembles a globe viewed from a point of perspective at infinite distance. Only one hemisphere can be seen at a time. While not useful for accurate measurements, this projection is useful for pictorial views of the world.- Since:
- 1.1
- Version:
- 1.1
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.sis.referencing.operation.projection.NormalizedProjection
NormalizedProjection.ParameterRole
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final double
Sine and cosine of latitude of origin.private final double
Value of (1 – ℯ²)⋅cosφ₀.private static final long
For compatibility with different versions during deserialization.private final double
Sine and cosine of latitude of origin.Fields inherited from class org.apache.sis.referencing.operation.projection.NormalizedProjection
ANGULAR_TOLERANCE, context, eccentricity, eccentricitySquared, ITERATION_TOLERANCE, LARGE_LONGITUDE_LIMIT, MAXIMUM_ITERATIONS, POLAR_AREA_LIMIT
Fields inherited from class org.apache.sis.referencing.operation.transform.AbstractMathTransform2D
DIMENSION
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Orthographic
(Initializer initializer) Work around for RFE #4093999 in Sun's bug database ("Relax constraint on placement of this()/super() call in constructors").Orthographic
(org.opengis.referencing.operation.OperationMethod method, Parameters parameters) Creates an orthographic projection from the given parameters. -
Method Summary
Modifier and TypeMethodDescription(package private) final String[]
Returns the names of additional internal parameters which need to be taken in account when comparing twoOrthographic
projections or formatting them in debug mode.(package private) final double[]
Returns the values of additional internal parameters which need to be taken in account when comparing twoOrthographic
projections or formatting them in debug mode.private static Initializer
initializer
(org.opengis.referencing.operation.OperationMethod method, Parameters parameters) Work around for RFE #4093999 in Sun's bug database ("Relax constraint on placement of this()/super() call in constructors").protected void
inverseTransform
(double[] srcPts, int srcOff, double[] dstPts, int dstOff) Converts the specified (x,y) coordinates and stores the result indstPts
(angles in radians).org.opengis.referencing.operation.Matrix
transform
(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate) Projects the specified (λ,φ) coordinates and stores the result indstPts
.(package private) final double
Implementation oftransform(double[], int, double[], int, boolean)
with possibility to recycle an existing matrix instance.Methods inherited from class org.apache.sis.referencing.operation.projection.NormalizedProjection
completeWithWraparound, computeHashCode, createMapProjection, delegate, equals, getContextualParameters, getParameterDescriptors, getParameterValues, getWraparoundLongitude, inverse, tryConcatenate, tryConcatenate, variant
Methods inherited from class org.apache.sis.referencing.operation.transform.AbstractMathTransform2D
createTransformedShape, derivative, getSourceDimensions, getTargetDimensions, transform
Methods inherited from class org.apache.sis.referencing.operation.transform.AbstractMathTransform
derivative, equals, formatTo, getDomain, hashCode, isIdentity, transform, transform, transform, transform, transform
Methods inherited from class org.apache.sis.io.wkt.FormattableObject
print, toString, toString, toWKT
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.opengis.referencing.operation.MathTransform
derivative, isIdentity, toWKT, transform, transform, transform, transform, transform
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDFor compatibility with different versions during deserialization.- See Also:
-
sinφ0
private final double sinφ0Sine and cosine of latitude of origin. -
cosφ0
private final double cosφ0Sine and cosine of latitude of origin. -
mℯ2_cosφ0
private final double mℯ2_cosφ0Value of (1 – ℯ²)⋅cosφ₀.
-
-
Constructor Details
-
Orthographic
public Orthographic(org.opengis.referencing.operation.OperationMethod method, Parameters parameters) Creates an orthographic projection from the given parameters. Themethod
argument can be the description of one of the following:- "Orthographic".
- Parameters:
method
- description of the projection parameters.parameters
- the parameter values of the projection to create.
-
Orthographic
Work around for RFE #4093999 in Sun's bug database ("Relax constraint on placement of this()/super() call in constructors").
-
-
Method Details
-
initializer
@Workaround(library="JDK", version="1.8") private static Initializer initializer(org.opengis.referencing.operation.OperationMethod method, Parameters parameters) Work around for RFE #4093999 in Sun's bug database ("Relax constraint on placement of this()/super() call in constructors"). -
getInternalParameterNames
Returns the names of additional internal parameters which need to be taken in account when comparing twoOrthographic
projections or formatting them in debug mode.We could report any of the internal parameters. But since they are all derived from φ₀ and the eccentricity and since the eccentricity is already reported by the super-class, we report only φ₀ as a representative of the internal parameters.
- Overrides:
getInternalParameterNames
in classNormalizedProjection
-
getInternalParameterValues
final double[] getInternalParameterValues()Returns the values of additional internal parameters which need to be taken in account when comparing twoOrthographic
projections or formatting them in debug mode.- Overrides:
getInternalParameterValues
in classNormalizedProjection
-
transform
public org.opengis.referencing.operation.Matrix transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate) throws ProjectionException Projects the specified (λ,φ) coordinates and stores the result indstPts
. The units of measurement are implementation-specific (see super-class javadoc). The results must be multiplied by the denormalization matrix before to get linear distances.- Specified by:
transform
in classNormalizedProjection
- Parameters:
srcPts
- the array containing the source point coordinates, as (longitude, latitude) angles in radians.srcOff
- the offset of the single coordinate tuple to be converted in the source array.dstPts
- the array into which the converted coordinates is returned (may be the same thansrcPts
). Coordinates will be expressed in a dimensionless unit, as a linear distance on a unit sphere or ellipse.dstOff
- the offset of the location of the converted coordinates that is stored in the destination array.derivate
-true
for computing the derivative, orfalse
if not needed.- Returns:
- the matrix of the projection derivative at the given source position,
or
null
if thederivate
argument isfalse
. - Throws:
ProjectionException
- if the coordinates cannot be converted.- See Also:
-
transform
final double transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, Matrix2 derivative) Implementation oftransform(double[], int, double[], int, boolean)
with possibility to recycle an existing matrix instance.Implementation note: in other map projections, we use a different class for ellipsoidal formulas. But the orthographic projection is a bit different; for this one it is more convenient to useif
statements.- Parameters:
derivative
- where to store the Jacobian matrix, ornull
if none. If this matrix is anInverter
instance, we take that as a flag meaning to not set out-of-range results to NaN.- Returns:
cos(φ)
, useful for error tolerance check.
-
inverseTransform
protected void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff) throws ProjectionException Converts the specified (x,y) coordinates and stores the result indstPts
(angles in radians).- Specified by:
inverseTransform
in classNormalizedProjection
- Parameters:
srcPts
- the array containing the source point coordinates, as linear distance on a unit sphere or ellipse.srcOff
- the offset of the point to be converted in the source array.dstPts
- the array into which the converted point coordinates is returned (may be the same thansrcPts
). Coordinates will be (longitude, latitude) angles in radians.dstOff
- the offset of the location of the converted point that is stored in the destination array.- Throws:
ProjectionException
- if the point cannot be converted.
-