Interface CRSFactory
-
- All Superinterfaces:
Factory
,ObjectFactory
- All Known Implementing Classes:
ReferencingObjectFactory
public interface CRSFactory extends ObjectFactory
Builds up complex coordinate reference systems from simpler objects or values.CRSFactory
allows applications to make coordinate reference systems that cannot be created by aCRSAuthorityFactory
. This factory is very flexible, whereas the authority factory is easier to use.So
CRSAuthorityFactory
can be used to make "standard" coordinate reference systems, andCRSFactory
can be used to make "special" coordinate reference systems.For example, the EPSG authority has codes for USA state plane coordinate systems using the NAD83 datum, but these coordinate systems always use meters. EPSG does not have codes for NAD83 state plane coordinate systems that use feet units. This factory lets an application create such a hybrid coordinate system.
- Since:
- GeoAPI 1.0
- Author:
- Martin Desruisseaux (IRD)
- See Also:
CSFactory
,DatumFactory
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description CompoundCRS
createCompoundCRS(Map<String,?> properties, CoordinateReferenceSystem... elements)
Creates a compound coordinate reference system from an ordered list ofCoordinateReferenceSystem
objects.DerivedCRS
createDerivedCRS(Map<String,?> properties, CoordinateReferenceSystem baseCRS, Conversion conversionFromBase, CoordinateSystem derivedCS)
Creates a derived coordinate reference system.EngineeringCRS
createEngineeringCRS(Map<String,?> properties, EngineeringDatum datum, CoordinateSystem cs)
Creates a engineering coordinate reference system.CoordinateReferenceSystem
createFromWKT(String wkt)
Creates a coordinate reference system object from a string.CoordinateReferenceSystem
createFromXML(String xml)
Creates a coordinate reference system object from a XML string.GeocentricCRS
createGeocentricCRS(Map<String,?> properties, GeodeticDatum datum, CartesianCS cs)
Creates a geocentric coordinate reference system from a cartesian coordinate system.GeocentricCRS
createGeocentricCRS(Map<String,?> properties, GeodeticDatum datum, SphericalCS cs)
Creates a geocentric coordinate reference system from a spherical coordinate system.GeographicCRS
createGeographicCRS(Map<String,?> properties, GeodeticDatum datum, EllipsoidalCS cs)
Creates a geographic coordinate reference system.ImageCRS
createImageCRS(Map<String,?> properties, ImageDatum datum, AffineCS cs)
Creates an image coordinate reference system.ProjectedCRS
createProjectedCRS(Map<String,?> properties, GeographicCRS baseCRS, Conversion conversionFromBase, CartesianCS derivedCS)
Creates a projected coordinate reference system from a defining conversion.TemporalCRS
createTemporalCRS(Map<String,?> properties, TemporalDatum datum, TimeCS cs)
Creates a temporal coordinate reference system.VerticalCRS
createVerticalCRS(Map<String,?> properties, VerticalDatum datum, VerticalCS cs)
Creates a vertical coordinate reference system.
-
-
-
Method Detail
-
createCompoundCRS
CompoundCRS createCompoundCRS(Map<String,?> properties, CoordinateReferenceSystem... elements) throws FactoryException
Creates a compound coordinate reference system from an ordered list ofCoordinateReferenceSystem
objects.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.elements
- ordered array ofCoordinateReferenceSystem
objects.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createEngineeringCRS
EngineeringCRS createEngineeringCRS(Map<String,?> properties, EngineeringDatum datum, CoordinateSystem cs) throws FactoryException
Creates a engineering coordinate reference system.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.datum
- Engineering datum to use in created CRS.cs
- The coordinate system for the created CRS.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createImageCRS
ImageCRS createImageCRS(Map<String,?> properties, ImageDatum datum, AffineCS cs) throws FactoryException
Creates an image coordinate reference system.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.datum
- Image datum to use in created CRS.cs
- The Cartesian or Oblique Cartesian coordinate system for the created CRS.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createTemporalCRS
TemporalCRS createTemporalCRS(Map<String,?> properties, TemporalDatum datum, TimeCS cs) throws FactoryException
Creates a temporal coordinate reference system.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.datum
- Temporal datum to use in created CRS.cs
- The Temporal coordinate system for the created CRS.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createVerticalCRS
VerticalCRS createVerticalCRS(Map<String,?> properties, VerticalDatum datum, VerticalCS cs) throws FactoryException
Creates a vertical coordinate reference system.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.datum
- Vertical datum to use in created CRS.cs
- The Vertical coordinate system for the created CRS.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createGeocentricCRS
GeocentricCRS createGeocentricCRS(Map<String,?> properties, GeodeticDatum datum, CartesianCS cs) throws FactoryException
Creates a geocentric coordinate reference system from a cartesian coordinate system.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.datum
- Geodetic datum to use in created CRS.cs
- The cartesian coordinate system for the created CRS.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createGeocentricCRS
GeocentricCRS createGeocentricCRS(Map<String,?> properties, GeodeticDatum datum, SphericalCS cs) throws FactoryException
Creates a geocentric coordinate reference system from a spherical coordinate system.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.datum
- Geodetic datum to use in created CRS.cs
- The spherical coordinate system for the created CRS.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createGeographicCRS
GeographicCRS createGeographicCRS(Map<String,?> properties, GeodeticDatum datum, EllipsoidalCS cs) throws FactoryException
Creates a geographic coordinate reference system. It could be Latitude/Longitude or Longitude/Latitude.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.datum
- Geodetic datum to use in created CRS.cs
- The ellipsoidal coordinate system for the created CRS.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createDerivedCRS
DerivedCRS createDerivedCRS(Map<String,?> properties, CoordinateReferenceSystem baseCRS, Conversion conversionFromBase, CoordinateSystem derivedCS) throws FactoryException
Creates a derived coordinate reference system. If the transform is an affine map performing a rotation, then any mixed axes must have identical units. For example, a (lat_deg, lon_deg, height_feet) system can be rotated in the (lat, lon) plane, since both affected axes are in degrees. But the transform should not rotate this coordinate system in any other plane.The
conversionFromBase
shall contains the parameter values required for the conversion. It may or may not contain the corresponding "base to derived" transform, at user's choice. If a transform is provided, this method may or may not use it at implementation choice. Otherwise it shall creates the transform from the parameters.It is the user's responsability to ensure that the conversion performs all required steps, including unit conversions and change of axis order, if needed. Note that this behavior is different than
createProjectedCRS
because transforms other than cartographic projections are not standardized.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.baseCRS
- Coordinate reference system to base the projection on. The number of axes must matches the source dimensions of the conversion from base.conversionFromBase
- The defining conversion.derivedCS
- The coordinate system for the derived CRS. The number of axes must matches the target dimensions of the conversion from base.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.- Since:
- GeoAPI 2.1
- See Also:
CoordinateOperationFactory.createDefiningConversion(java.util.Map<java.lang.String, ?>, org.geotools.api.referencing.operation.OperationMethod, org.geotools.api.parameter.ParameterValueGroup)
,MathTransformFactory.createBaseToDerived(org.geotools.api.referencing.crs.CoordinateReferenceSystem, org.geotools.api.parameter.ParameterValueGroup, org.geotools.api.referencing.cs.CoordinateSystem)
-
createProjectedCRS
ProjectedCRS createProjectedCRS(Map<String,?> properties, GeographicCRS baseCRS, Conversion conversionFromBase, CartesianCS derivedCS) throws FactoryException
Creates a projected coordinate reference system from a defining conversion. TheconversionFromBase
shall contains the parameter values required for the projection. It may or may not contain the corresponding "base to derived" transform, at user's choice. If a transform is provided, this method may or may not use it at implementation choice. Otherwise it shall creates the transform from the parameters.The supplied conversion should not includes the operation steps for performing unit conversions and change of axis order; those operations shall be inferred by this constructor by some code equivalent to:
MathTransform baseToDerived = MathTransformFactory.createBaseToDerived(baseCRS, parameters, derivedCS)
createDerivedCRS
because parameterized transforms are standardized for projections. See the note on cartographic projections.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.baseCRS
- Geographic coordinate reference system to base the projection on. The number of axes must matches the source dimensions of the conversion from base.conversionFromBase
- The defining conversion.derivedCS
- The coordinate system for the projected CRS. The number of axes must matches the target dimensions of the conversion from base.- Returns:
- The coordinate reference system for the given properties.
- Throws:
FactoryException
- if the object creation failed.- Since:
- GeoAPI 2.1
- See Also:
CoordinateOperationFactory.createDefiningConversion(java.util.Map<java.lang.String, ?>, org.geotools.api.referencing.operation.OperationMethod, org.geotools.api.parameter.ParameterValueGroup)
,MathTransformFactory.createBaseToDerived(org.geotools.api.referencing.crs.CoordinateReferenceSystem, org.geotools.api.parameter.ParameterValueGroup, org.geotools.api.referencing.cs.CoordinateSystem)
-
createFromXML
CoordinateReferenceSystem createFromXML(String xml) throws FactoryException
Creates a coordinate reference system object from a XML string.- Parameters:
xml
- Coordinate reference system encoded in XML format.- Returns:
- The coordinate reference system for the given XML.
- Throws:
FactoryException
- if the object creation failed.
-
createFromWKT
CoordinateReferenceSystem createFromWKT(String wkt) throws FactoryException
Creates a coordinate reference system object from a string. The definition for WKT is shown using Extended Backus Naur Form (EBNF).- Parameters:
wkt
- Coordinate system encoded in Well-Known Text format.- Returns:
- The coordinate reference system for the given WKT.
- Throws:
FactoryException
- if the object creation failed.
-
-