JScience v4.3

Package org.jscience.geography.coordinates

Provides linear or angular quantities which designate the position that a point occupies in a given reference frame or system.


Class Summary
Altitude This class represents the Mean-Sea-Level vertical altitude (MSL).
CompoundCoordinates<C1 extends Coordinates<?>,C2 extends Coordinates<?>> This class represents a coordinates made up by combining two coordinates objects together.
Coordinates<R extends CoordinateReferenceSystem<?>> This class designates the position that a point occupies in a given n-dimensional reference frame or system.
Height This class represents the vertical height above the WGS84 ellipsoid.
LatLong This class represents the geographic latitude/longitude coordinates onto the WGS84 ellipsoid.
Time This class represents the temporal UTC time coordinates.
UTM This class represents the projected Universal Transverse Mercator (UTM) coordinates onto the WGS84 ellipsoid.
XYZ This class represents the geocentric Earth-Centered, Earth-Fixed (ECEF) cartesian coordinates used in GPS/GLONASS.

Package org.jscience.geography.coordinates Description

Provides linear or angular quantities which designate the position that a point occupies in a given reference frame or system.

Coordinates are unambigous only when the coordinates reference system to which those coordinates are related has been fully defined.

Applications may create new types of coordinates either by extending Coordinates (in which case they must provide a coordinates reference system) or simply by combining existing coordinates together. For example:

    // High-Precision Coordinates.
    class Position3D extends Coordinates<GeocentricCRS> {
         public static final GeocentricCRS<Position3D> CRS = ...;                 
         public GeocentricCRS<Position3D> getCoordinateReferenceSystem {
             return CRS; // All instances use the same reference system.
         public Real getX(Unit<Length> u) { ... }
         public Real getY(Unit<Length> u) { ... }
         public Real getZ(Unit<Length> u) { ... }
    // Combining existing coordinates.
    class LatLongHeight extends CompoundCoordinates<LatLong, Height> { }
    class HeightTime extends CompoundCoordinates<Height, Time> { }
    class UtmHeightTime extends CompoundCoordinates<CompoundCoordinates<UTM, Height>, Time> { }

Conversion between coordinates is achieved through their coordinates reference system. For example:

    // Converts UTM coordinates to Latitude/Longitude.
    UTM utm = UTM.valueOf(17, 'E', 444.5, 556.44, METRE);
    CoordinatesConverter<UTM, LatLong> utmToLatLong = UTM.CRS.getConverterTo(LatLong.CRS);
    LatLong latLong = utmToLatLong.convert(utm);
    // Converts compound coordinates to X/Y/Z geocentric coordinates.
    CompoundCoordinates<UTM, Height> utmHeight = new CompoundCoordinates(utm, new Height(2330.55, FOOT));
    XYZ xyz = new CompoundCRS<UTM, Height>(UTM.CRS, Height.CRS).getConverterTo(XYZ.CRS).convert(utmHeight);

    // Converts any projected coordinates to Latitude/Longitude.
    Coordinates<ProjectedCRS> coord2d;
    LatLong latLong = coord2d.getCoordinateReferenceSystem().getConverterTo(LatLong.CRS).convert(coord2d);

JScience v4.3

Copyright © 2006 JScience.