All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opengis.referencing.crs.CoordinateReferenceSystem Maven / Gradle / Ivy

There is a newer version: 24.2-oss84-1
Show newest version
/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2011, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2003-2005, Open Geospatial Consortium Inc.
 *
 *    All Rights Reserved. http://www.opengis.org/legal/
 */
package org.opengis.referencing.crs;

import static org.opengis.annotation.Specification.*;

import org.opengis.annotation.Extension;
import org.opengis.annotation.UML;
import org.opengis.referencing.ReferenceSystem;
import org.opengis.referencing.cs.CoordinateSystem;

/**
 * Abstract coordinate reference system, usually defined by a {@linkplain
 * org.opengis.referencing.cs.CoordinateSystem coordinate system} and a {@linkplain
 * org.opengis.referencing.datum.Datum datum}. The concept of a coordinate reference system (CRS)
 * captures the choice of values for the parameters that constitute the degrees of freedom of the
 * coordinate space. The fact that such a choice has to be made, either arbitrarily or by adopting
 * values from survey measurements, leads to the large number of coordinate reference systems in use
 * around the world. It is also the cause of the little understood fact that the latitude and
 * longitude of a point are not unique. Without the full specification of the coordinate reference
 * system, coordinates are ambiguous at best and meaningless at worst. However for some interchange
 * purposes it is sufficient to confirm the {@linkplain #getName identity of the system} without
 * necessarily having the full system definition.
 *
 * 

The concept of coordinates may be expanded from a strictly spatial context to include time. * Time is then added as another coordinate to the coordinate tuple. It is even possible to add two * time-coordinates, provided the two coordinates describe different independent quantities. An * example of the latter is the time/space position of a subsurface point of which the vertical * coordinate is expressed as the two-way travel time of a sound signal in milliseconds, as is * common in seismic imaging. A second time-coordinate indicates the time of observation, usually * expressed in whole years. * * @version Abstract * specification 2.0 * @author Martin Desruisseaux (IRD) * @since GeoAPI 1.0 */ @UML(identifier = "SC_CRS", specification = ISO_19111) public interface CoordinateReferenceSystem extends ReferenceSystem { /** * Returns a relevant coordinate system instance. Special cases: * *

    *
  • *

    If the CRS instance on which this method is invoked is an instance of the * {@linkplain SingleCRS single CRS} interface, then the CS instance which is returned * shall be one of the defined sub-interfaces of {@linkplain CoordinateSystem coordinate * system}. *

  • *

    If the CRS instance on which this method is invoked is an instance of the * {@linkplain CompoundCRS compound CRS} interface, then the CS instance which is returned * shall have dimension and axis components obtained from different {@linkplain * CompoundCRS#getCoordinateReferenceSystems components} of the instance CRS. *

* * @departure Strictly speaking, this method is defined by ISO 19111 for {@linkplain SingleCRS * single CRS} only. GeoAPI declares this method in this parent interface for user * convenience, since CS {@linkplain CoordinateSystem#getDimension dimension} and * {@linkplain CoordinateSystem#getAxis axis} are commonly requested information and shall * be available, directly or indirectly, in all cases (including {@linkplain CompoundCRS * compound CRS}). * @return The coordinate system. */ @Extension CoordinateSystem getCoordinateSystem(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy