Interface GeographicProjection
-
- All Known Implementing Classes:
AbstractGeographicProjection,ProjectionEquirectangular,ProjectionMercator,ProjectionModifiedSinusoidal,ProjectionPolarEquidistant,ProjectionSinusoidal,ProjectionTransverseMercator,ProjectionUPS,ProjectionUTM
public interface GeographicProjectionDefines an interface to project geographic coordinates to Cartesian coordinates. Used byGlobe2Dimplementations to transform geographic coordinates to meters and back.Each implementation of this interface defines its own constructors, which may accept arguments that completely define the projection.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description PositioncartesianToGeographic(Globe globe, Vec4 cart, Vec4 offset)Converts a Cartesian point in meters to a geographic position.Vec4geographicToCartesian(Globe globe, Angle latitude, Angle longitude, double metersElevation, Vec4 offset)Converts a geographic position to meters in Cartesian coordinates.voidgeographicToCartesian(Globe globe, Sector sector, int numLat, int numLon, double[] metersElevation, Vec4 offset, Vec4[] out)Converts a grid of geographic positions to a grid of points in Cartesian coordinates.java.lang.StringgetName()Returns the projection name.SectorgetProjectionLimits()Indicates the latitude limits for this projection.booleanisContinuous()Indicates whether it makes sense to treat this projection as contiguous with itself.Vec4northPointingTangent(Globe globe, Angle latitude, Angle longitude)Computes a Cartesian vector that points north and is tangent to the meridian at the specified geographic location.voidsetProjectionLimits(Sector projectionLimits)Specifies the limits for this projection.
-
-
-
Method Detail
-
getName
java.lang.String getName()
Returns the projection name.- Returns:
- The projection name.
-
isContinuous
boolean isContinuous()
Indicates whether it makes sense to treat this projection as contiguous with itself. If true, the scene controller will make the globe using the projection appear to scroll continuously horizontally.- Returns:
trueif it makes sense to treat this projection as continuous, otherwisefalse.
-
getProjectionLimits
Sector getProjectionLimits()
Indicates the latitude limits for this projection.- Returns:
- The projection limits for this projection.
-
setProjectionLimits
void setProjectionLimits(Sector projectionLimits)
Specifies the limits for this projection.- Parameters:
projectionLimits- The projection limits.- Throws:
java.lang.IllegalArgumentException- if the specified limits is null or the limits are outside the normal range of latitude or longitude.
-
geographicToCartesian
Vec4 geographicToCartesian(Globe globe, Angle latitude, Angle longitude, double metersElevation, Vec4 offset)
Converts a geographic position to meters in Cartesian coordinates.Note: The input arguments are not checked for
nullprior to being used. The caller, typically aGlobe2Dimplementation, is expected do perform that check prior to calling this method.- Parameters:
globe- The globe this projection is applied to.latitude- The latitude of the position.longitude- The longitude of the position.metersElevation- The elevation of the position, in meters.offset- An optional offset to be applied to the Cartesian output. Typically only projections that are continuous (seeisContinuous()apply this offset. Others ignore it. May be null.- Returns:
- The Cartesian point, in meters, corresponding to the input position.
- See Also:
cartesianToGeographic(Globe, gov.nasa.worldwind.geom.Vec4, gov.nasa.worldwind.geom.Vec4)
-
geographicToCartesian
void geographicToCartesian(Globe globe, Sector sector, int numLat, int numLon, double[] metersElevation, Vec4 offset, Vec4[] out)
Converts a grid of geographic positions to a grid of points in Cartesian coordinates.This method provides an interface for efficient generation of a grid of cartesian points within a sector. The grid is constructed by dividing the sector into
numLon x numLatevenly separated points in geographic coordinates. The first and last points in latitude and longitude are placed at the sector's minimum and maximum boundary, and the remaining points are spaced evenly between those boundary points.For each grid point within the sector, an elevation value is specified via an array of elevations. The calculation at each position incorporates the associated elevation.
- Parameters:
globe- The globe this projection is applied to.sector- The sector over which to generate the points.numLat- The number of points to generate latitudinally.numLon- The number of points to generate longitudinally.metersElevation- An array of elevations to incorporate in the point calculations. There must be one elevation value in the array for each generated point, so the array must have a length of at leastnumLon x numLat. Elevations are read from this array in row major order, beginning with the row of minimum latitude.offset- An optional offset to be applied to the Cartesian output. Typically only projections that are continuous (seeisContinuous()apply this offset. Others ignore it. May be null.out- An array to hold the computed cartesian points. It must have a length of at leastnumLon x numLat. Points are written to this array in row major order, beginning with the row of minimum latitude.
-
cartesianToGeographic
Position cartesianToGeographic(Globe globe, Vec4 cart, Vec4 offset)
Converts a Cartesian point in meters to a geographic position.Note: The input arguments are not checked for
nullprior to being used. The caller, typically aGlobe2Dimplementation, is expected do perform that check prior to calling this method.- Parameters:
globe- The globe this projection is applied to.cart- The Cartesian point, in meters.offset- An optional offset to be applied to the Cartesian input prior to converting it. Typically only projections that are continuous (seeisContinuous()apply this offset. Others ignore it. May be null.- Returns:
- The geographic position corresponding to the input point.
- See Also:
geographicToCartesian(Globe, gov.nasa.worldwind.geom.Angle, gov.nasa.worldwind.geom.Angle, double, gov.nasa.worldwind.geom.Vec4)
-
northPointingTangent
Vec4 northPointingTangent(Globe globe, Angle latitude, Angle longitude)
Computes a Cartesian vector that points north and is tangent to the meridian at the specified geographic location.- Parameters:
globe- The globe this projection is applied to.latitude- The latitude of the location.longitude- The longitude of the location.- Returns:
- The north pointing tangent corresponding to the input location.
-
-