Statistics
| Revision:

root / org.gvsig.proj / branches / refactor2018 / org.gvsig.proj / org.gvsig.proj.catalog / org.gvsig.proj.catalog.api / src / main / java / org / gvsig / proj / catalogue / crs / EngineeringCRS.java @ 793

History | View | Annotate | Download (5.67 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2018 gvSIG Association.
5
 * 
6
 * This file has been adapted from GeoAPI, see 
7
 * the original copyright headers bellow.
8
 *
9
 * This program is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU General Public License
11
 * as published by the Free Software Foundation; either version 2
12
 * of the License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU General Public License
20
 * along with this program; if not, write to the Free Software
21
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
 * MA  02110-1301, USA.
23
 *
24
 * For any additional information, do not hesitate to contact us
25
 * at info AT gvsig.com, or visit our website www.gvsig.com.
26
 * 
27
 * ----------
28
 * 
29
 *    GeoAPI - Java interfaces for OGC/ISO standards
30
 *    http://www.geoapi.org
31
 *
32
 *    Copyright (C) 2004-2017 Open Geospatial Consortium, Inc.
33
 *    All Rights Reserved. http://www.opengeospatial.org/ogc/legal
34
 *
35
 *    Permission to use, copy, and modify this software and its documentation, with
36
 *    or without modification, for any purpose and without fee or royalty is hereby
37
 *    granted, provided that you include the following on ALL copies of the software
38
 *    and documentation or portions thereof, including modifications, that you make:
39
 *
40
 *    1. The full text of this NOTICE in a location viewable to users of the
41
 *       redistributed or derivative work.
42
 *    2. Notice of any changes or modifications to the OGC files, including the
43
 *       date changes were made.
44
 *
45
 *    THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
46
 *    NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
47
 *    TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
48
 *    THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
49
 *    PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
50
 *
51
 *    COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
52
 *    CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
53
 *
54
 *    The name and trademarks of copyright holders may NOT be used in advertising or
55
 *    publicity pertaining to the software without specific, written prior permission.
56
 *    Title to copyright in this software and any associated documentation will at all
57
 *    times remain with copyright holders.
58
 */
59
package org.gvsig.proj.catalogue.crs;
60

    
61
import org.gvsig.proj.catalogue.datum.EngineeringDatum;
62

    
63
/**
64
 * A 1-, 2- or 3-dimensional contextually local coordinate reference system.
65
 * It can be divided into two broad categories:
66
 *
67
 * <ul>
68
 *   <li>earth-fixed systems applied to engineering activities on or near the surface of the earth;</li>
69
 *   <li>CRSs on moving platforms such as road vehicles, vessels, aircraft, or spacecraft.</li>
70
 * </ul>
71
 *
72
 * Earth-fixed Engineering CRSs are commonly based on a simple flat-earth approximation of the
73
 * earth's surface, and the effect of earth curvature on feature geometry is ignored: calculations
74
 * on coordinates use simple plane arithmetic without any corrections for earth curvature. The
75
 * application of such Engineering CRSs to relatively small areas and "contextually local" is in
76
 * this case equivalent to "spatially local".
77
 *
78
 * <p>Engineering CRSs used on moving platforms are usually intermediate coordinate reference
79
 * systems that are computationally required to calculate coordinates referenced to
80
 * {@linkplain GeocentricCRS geocentric}, {@linkplain GeographicCRS geographic} or
81
 * {@linkplain ProjectedCRS projected} CRSs. These engineering coordinate reference
82
 * systems are subject to all the motions of the platform with which they are associated.
83
 * In this case "contextually local" means that the associated coordinates are meaningful
84
 * only relative to the moving platform. Earth curvature is usually irrelevant and is therefore
85
 * ignored. In the spatial sense their applicability may extend from the immediate vicinity of
86
 * the platform (e.g. a moving seismic ship) to the entire earth (e.g. in space applications).
87
 * The determining factor is the mathematical model deployed in the positioning calculations.
88
 * Transformation of coordinates from these moving Engineering CRSs to earth-referenced coordinate
89
 * reference systems involves time-dependent coordinate operation parameters.</p>
90
 *
91
 * <p>This type of CRS can be used with coordinate systems of type
92
 * {@link org.opengis.referencing.cs.AffineCS},
93
 * {@link org.opengis.referencing.cs.CartesianCS},
94
 * {@link org.opengis.referencing.cs.CylindricalCS},
95
 * {@link org.opengis.referencing.cs.LinearCS},
96
 * {@link org.opengis.referencing.cs.PolarCS},
97
 * {@link org.opengis.referencing.cs.SphericalCS},
98
 * {@link org.opengis.referencing.cs.UserDefinedCS}.</p>
99
 *
100
 * Note: gvSIG derived these interfaces from GeoAPI in order to have a simpler API and also to
101
 * avoid namespace collisions (e.g. GeoAPI 3 vs GeoTools interfaces). There is no plans
102
 * to evolve these interfaces to adapt them to future GeoAPI versions.
103
 * 
104
 * @author  gvSIG Team
105
 * @author  Martin Desruisseaux (IRD)
106
 * @version 3.0
107
 * @since   1.0
108
 *
109
 * @see CRSAuthorityFactory#createEngineeringCRS(String)
110
 * @see CRSFactory#createEngineeringCRS(Map, EngineeringDatum, CoordinateSystem)
111
 */
112
public interface EngineeringCRS extends SingleCRS {
113
    /**
114
     * Returns the datum, which shall be an engineering one.
115
     */
116
    @Override
117
    EngineeringDatum getDatum();
118
}