AbstractCRS (Apache SIS 1.6 API) JavaScript is disabled on your browser.     Skip navigation links Overview Class Use Tree New Deprecated Index Search Help org.apache.sis.referencing org.apache.sis.referencing.crs AbstractCRS Contents  Description Instantiation Immutability and thread safety Field Summary Constructor Summary Method Summary Constructor Details AbstractCRS(Map, CoordinateSystem) AbstractCRS(CoordinateReferenceSystem) Method Details castOrCopy(CoordinateReferenceSystem) getInterface() getCoordinateSystem() forConvention(AxesConvention) equals(Object, ComparisonMode) formatTo(Formatter) Hide sidebar  Show sidebar Class AbstractCRS Object FormattableObject AbstractIdentifiedObject AbstractReferenceSystem AbstractCRS All Implemented Interfaces: Serializable, Formattable, Deprecable, Lenient­Comparable, Printable, Coordinate­Reference­System, Identified­Object, Reference­System Direct Known Subclasses: Default­Compound­CRS, Default­Derived­CRS, Default­Engineering­CRS, Default­Geocentric­CRS, Default­Geographic­CRS, Default­Parametric­CRS, Default­Projected­CRS, Default­Temporal­CRS, Default­Vertical­CRS public class AbstractCRS extends AbstractReferenceSystem implements CoordinateReferenceSystem Coordinate reference system, defined by a coordinate system and (usually) a datum. A coordinate reference system (CRS) consists of an ordered sequence of coordinate system axes that are related to the earth through the datum. Most coordinate reference system do not move relative to the earth, except for engineering coordinate reference systems defined on moving platforms such as cars, ships, aircraft, and spacecraft. Coordinate reference systems can have an arbitrary number of dimensions. The actual dimension of a given instance can be determined as below: Copy int dimension = crs.getCoordinateSystem().getDimension(); However, most subclasses restrict the allowed number of dimensions. Instantiation This class is conceptually abstract, even if it is technically possible to instantiate it. Typical applications should create instances of the most specific subclass prefixed by Default instead. An exception to this rule may occur when it is not possible to identify the exact CRS type. Immutability and thread safety This base class is immutable and thus thread-safe if the property values (not necessarily the map itself) given to the constructor are also immutable. Most SIS subclasses and related classes are immutable under similar conditions. This means that unless otherwise noted in the javadoc, Coordinate­Reference­System instances created using only SIS factories and static constants can be shared by many objects and passed between threads without synchronization. Since: 0.4 See Also: Abstract­CS Abstract­Datum Serialized Form Field Summary Fields inherited from class AbstractIdentifiedObject DEPRECATED_KEY, DOMAINS_KEY, LOCALE_KEY Fields inherited from interface IdentifiedObject ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY Fields inherited from interface ReferenceSystem DOMAIN_OF_VALIDITY_KEY, SCOPE_KEY Constructor Summary Constructors Modifier Constructor Description   Abstract­CRS(Map<String,?> properties, Coordinate­System cs) Creates a coordinate reference system from the given properties and coordinate system. protected Abstract­CRS(Coordinate­Reference­System crs) Constructs a new coordinate reference system with the same values as the specified one. Method Summary All MethodsStatic MethodsInstance MethodsConcrete Methods Modifier and Type Method Description static Abstract­CRS cast­Or­Copy(Coordinate­Reference­System object) Returns a SIS coordinate reference system implementation with the values of the given arbitrary implementation. boolean equals(Object object, Comparison­Mode mode) Compares this coordinate reference system with the specified object for equality. Abstract­CRS for­Convention(Axes­Convention convention) Returns a CRS equivalent to this one but with axes rearranged according the given convention. protected String format­To(Formatter formatter) Formats the inner part of the Well Known Text (WKT) representation of this CRS. Coordinate­System get­Coordinate­System() Returns the coordinate system. Class<? extends Coordinate­Reference­System> get­Interface() Returns the GeoAPI interface implemented by this class. Methods inherited from class AbstractReferenceSystem get­Domain­Of­Validity, get­Scope Methods inherited from class AbstractIdentifiedObject cast­Or­Copy, equals, format­To, get­Alias, get­Description, get­Domains, get­Identifiers, get­Name, get­Remarks, hash­Code, is­Deprecated, is­Heuristic­Match­For­Name Methods inherited from class FormattableObject print, to­String, to­String, to­WKT Methods inherited from class Object clone, finalize, get­Class, notify, notify­All, wait, wait, wait Methods inherited from interface IdentifiedObject get­Alias, get­Identifiers, get­Name, get­Remarks, to­WKT Methods inherited from interface ReferenceSystem get­Domain­Of­Validity, get­Scope Constructor Details AbstractCRS public AbstractCRS(Map<String,?> properties, CoordinateSystem cs) Creates a coordinate reference system from the given properties and coordinate system. The properties given in argument follow the same rules as for the super-class constructor. The following table is a reminder of main (not all) properties: Recognized properties (non exhaustive list) Property name Value type Returned by "name" ReferenceIdentifier or String AbstractIdentifiedObject.getName() "alias" GenericName or Char­Sequence (optionally as array) AbstractIdentifiedObject.getAlias() "identifiers" ReferenceIdentifier (optionally as array) AbstractIdentifiedObject.getIdentifiers() "domains" DefaultObjectDomain (optionally as array) AbstractIdentifiedObject.getDomains() "remarks" InternationalString or String AbstractIdentifiedObject.getRemarks() Parameters: properties - the properties to be given to the coordinate reference system. cs - the coordinate system. AbstractCRS protected AbstractCRS(CoordinateReferenceSystem crs) Constructs a new coordinate reference system with the same values as the specified one. This copy constructor provides a way to convert an arbitrary implementation into a SIS one or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API. This constructor performs a shallow copy, i.e. the properties are not cloned. Parameters: crs - the coordinate reference system to copy. See Also: cast­Or­Copy(Coordinate­Reference­System) Method Details castOrCopy public static AbstractCRS castOrCopy(CoordinateReferenceSystem object) Returns a SIS coordinate reference system implementation with the values of the given arbitrary implementation. This method performs the first applicable action in the following choices: If the given object is null, then this method returns null. Otherwise if the given object is an instance of Geodetic­CRS (including the Geographic­CRS and Geocentric­CRS subtypes), Vertical­CRS, Temporal­CRS, Engineering­CRS, Image­CRS or Default­Compound­CS, then this method delegates to the cast­Or­Copy(…) method of the corresponding SIS subclass. Note that if the given object implements more than one of the above-cited interfaces, then the cast­Or­Copy(…) method to be used is unspecified. Otherwise if the given object is already an instance of Abstract­CRS, then it is returned unchanged. Otherwise a new Abstract­CRS instance is created using the copy constructor and returned. Note that this is a shallow copy operation, because the other properties contained in the given object are not recursively copied. Parameters: object - the object to get as a SIS implementation, or null if none. Returns: a SIS implementation containing the values of the given object (may be the given object itself), or null if the argument was null. getInterface public Class<? extends CoordinateReferenceSystem> getInterface() Returns the GeoAPI interface implemented by this class. The default implementation returns Coordinate­Reference­System​.class. Subclasses implementing a more specific GeoAPI interface shall override this method. Overrides: get­Interface in class Abstract­Reference­System Returns: the coordinate reference system interface implemented by this class. getCoordinateSystem public CoordinateSystem getCoordinateSystem() Returns the coordinate system. Specified by: get­Coordinate­System in interface Coordinate­Reference­System Returns: the coordinate system. forConvention public AbstractCRS forConvention(AxesConvention convention) Returns a CRS equivalent to this one but with axes rearranged according the given convention. If this CRS is already compatible with the given convention, then this method returns this. Parameters: convention - the axes convention for which a coordinate reference system is desired. Returns: a coordinate reference system compatible with the given convention (may be this). See Also: Abstract­CS​.for­Convention(Axes­Convention) equals public boolean equals(Object object, ComparisonMode mode) Compares this coordinate reference system with the specified object for equality. If the mode argument value is STRICT or BY_CONTRACT, then all available properties are compared including the domains and remarks. Specified by: equals in interface Lenient­Comparable Overrides: equals in class Abstract­Identified­Object Parameters: object - the object to compare to this. mode - the strictness level of the comparison. Returns: true if both objects are equal. See Also: Abstract­Identified­Object​.compute­Hash­Code() Utilities​.deep­Equals(Object, Object, Comparison­Mode) formatTo protected String formatTo(Formatter formatter) Formats the inner part of the Well Known Text (WKT) representation of this CRS. The default implementation writes the following elements in WKT 2 format: The object name. The datum, if any. All coordinate system's axis. The unit if all axes use the same unit, or nothing otherwise. The WKT 1 format is similar to the WKT 2 one with two differences: Units are formatted before the axes instead of after the axes. If no unit can be formatted because not all axes use the same unit, then the WKT is flagged as invalid. Overrides: format­To in class Abstract­Identified­Object Parameters: formatter - the formatter where to format the inner content of this WKT element. Returns: the CamelCase keyword for the WKT element, or null if unknown. See Also: Formattable­Object​.to­WKT() Formattable­Object​.to­String()