Class GeodeticObjectFactory
- Object
-
- AbstractFactory
-
- GeodeticObjectFactory
-
- All Implemented Interfaces:
Parser
,CRSFactory
,CSFactory
,DatumFactory
,ObjectFactory
,Factory
public class GeodeticObjectFactory extends AbstractFactory implements CRSFactory, CSFactory, DatumFactory, Parser
Creates Coordinate Reference System (CRS) implementations, with their Coordinate System (CS) and Datum components. This factory serves two purposes:- For users, allows the creation of complex objects that can not be created by the authority factories, without explicit dependency to Apache SIS (when using the GeoAPI interfaces implemented by this class).
- For providers, allows inversion of control by overriding methods in this class,
then specifying the customized instance to other services that consume
CRSFactory
(for example authority factories or WKT parsers).
GeodeticObjectFactory
class is not easy to use directly. Users are encouraged to use an authority factory instead (or theCRS.forCode(String)
convenience method) when the CRS object to construct can be identified by a code in the namespace of an authority (typically EPSG).Object propertiesMost factory methods expect aMap<String,?>
argument, often followed by explicit arguments. Unless otherwise noticed, information provided in theproperties
map are considered ignorable metadata while information provided in explicit arguments have an impact on coordinate transformation results.The following table lists the keys recognized by the
GeodeticObjectFactory
default implementation, together with the type of values associated to those keys. A value for the"name"
key is mandatory for all objects, while all other properties are optional.GeodeticObjectFactory
methods ignore all unknown properties.LocalizationAll localizable attributes like"remarks"
may have a language and country code suffix. For example the"remarks_fr"
property stands for remarks in French and the"remarks_fr_CA"
property stands for remarks in French Canadian. They are convenience properties for building theInternationalString
value.The
"locale"
property applies only in case of exception for formatting the error message, and is used only on a best effort basis. The locale is discarded after successful construction since localizations are applied by theInternationalString.toString(Locale)
method.- Since:
- 0.6
Defined in the
sis-referencing
module
-
-
Constructor Summary
Constructors Constructor Description GeodeticObjectFactory()
Constructs a factory with no default properties.GeodeticObjectFactory(Map<String,?> properties)
Constructs a factory with the given default properties.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Map<String,?>
complete(Map<String,?> properties)
Returns the union of the givenproperties
map with the default properties given at construction time.AffineCS
createAffineCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
Creates a two-dimensional affine coordinate system from the given pair of axis.AffineCS
createAffineCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
Creates a three-dimensional affine coordinate system from the given set of axis.CartesianCS
createCartesianCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
Creates a two-dimensional Cartesian coordinate system from the given pair of axis.CartesianCS
createCartesianCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
Creates a three-dimensional Cartesian coordinate system from the given set of axis.CompoundCRS
createCompoundCRS(Map<String,?> properties, CoordinateReferenceSystem... components)
Creates a compound coordinate reference system from an ordered list of CRS components.CoordinateSystemAxis
createCoordinateSystemAxis(Map<String,?> properties, String abbreviation, AxisDirection direction, Unit<?> unit)
Creates a coordinate system axis from an abbreviation and a unit.CylindricalCS
createCylindricalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
Creates a cylindrical coordinate system from the given set of axis.DerivedCRS
createDerivedCRS(Map<String,?> properties, CoordinateReferenceSystem baseCRS, Conversion conversion, CoordinateSystem derivedCS)
Creates a derived coordinate reference system from a conversion.Ellipsoid
createEllipsoid(Map<String,?> properties, double semiMajorAxis, double semiMinorAxis, Unit<Length> unit)
Creates an ellipsoid from semi-axis length values.EllipsoidalCS
createEllipsoidalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
Creates an ellipsoidal coordinate system without ellipsoidal height.EllipsoidalCS
createEllipsoidalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
Creates an ellipsoidal coordinate system with ellipsoidal height.EngineeringCRS
createEngineeringCRS(Map<String,?> properties, EngineeringDatum datum, CoordinateSystem cs)
Creates a engineering coordinate reference system.EngineeringDatum
createEngineeringDatum(Map<String,?> properties)
Creates an engineering datum.Ellipsoid
createFlattenedSphere(Map<String,?> properties, double semiMajorAxis, double inverseFlattening, Unit<Length> unit)
Creates an ellipsoid from a major semi-axis length and inverse flattening.CoordinateReferenceSystem
createFromWKT(String text)
Creates a Coordinate Reference System object from a Well Known Text (WKT).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.GeodeticDatum
createGeodeticDatum(Map<String,?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian)
Creates geodetic datum from ellipsoid and (optionally) Bursa-Wolf parameters.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.ImageDatum
createImageDatum(Map<String,?> properties, PixelInCell pixelInCell)
Creates an image datum.LinearCS
createLinearCS(Map<String,?> properties, CoordinateSystemAxis axis)
Creates a linear coordinate system.DefaultParametricCRS
createParametricCRS(Map<String,?> properties, DefaultParametricDatum datum, DefaultParametricCS cs)
Creates a parametric coordinate reference system.DefaultParametricCS
createParametricCS(Map<String,?> properties, CoordinateSystemAxis axis)
Creates a parametric coordinate system.DefaultParametricDatum
createParametricDatum(Map<String,?> properties)
Creates a parametric datum.PolarCS
createPolarCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
Creates a polar coordinate system from the given pair of axis.PrimeMeridian
createPrimeMeridian(Map<String,?> properties, double longitude, Unit<Angle> angularUnit)
Creates a prime meridian, relative to Greenwich.ProjectedCRS
createProjectedCRS(Map<String,?> properties, GeographicCRS baseCRS, Conversion conversion, CartesianCS derivedCS)
Creates a projected coordinate reference system from a conversion.SphericalCS
createSphericalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
Creates a spherical coordinate system from the given set of axis.TemporalCRS
createTemporalCRS(Map<String,?> properties, TemporalDatum datum, TimeCS cs)
Creates a temporal coordinate reference system.TemporalDatum
createTemporalDatum(Map<String,?> properties, Date origin)
Creates a temporal datum from an enumerated type value.TimeCS
createTimeCS(Map<String,?> properties, CoordinateSystemAxis axis)
Creates a temporal coordinate system.UserDefinedCS
createUserDefinedCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
Creates a two-dimensional user defined coordinate system from the given pair of axis.UserDefinedCS
createUserDefinedCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
Creates a three-dimensional user defined coordinate system from the given set of axis.VerticalCRS
createVerticalCRS(Map<String,?> properties, VerticalDatum datum, VerticalCS cs)
Creates a vertical coordinate reference system.VerticalCS
createVerticalCS(Map<String,?> properties, CoordinateSystemAxis axis)
Creates a vertical coordinate system.VerticalDatum
createVerticalDatum(Map<String,?> properties, VerticalDatumType type)
Creates a vertical datum from an enumerated type value.-
Methods inherited from class AbstractFactory
getVendor
-
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface Factory
getVendor
-
-
-
-
Constructor Detail
-
GeodeticObjectFactory
public GeodeticObjectFactory()
Constructs a factory with no default properties.
-
GeodeticObjectFactory
public GeodeticObjectFactory(Map<String,?> properties)
Constructs a factory with the given default properties.GeodeticObjectFactory
will fallback on the map given to this constructor for any property not present in the map provided to acreateFoo(Map<String,?>, …)
method.- Parameters:
properties
- the default properties, ornull
if none.
-
-
Method Detail
-
complete
protected Map<String,?> complete(Map<String,?> properties)
Returns the union of the givenproperties
map with the default properties given at construction time. Entries in the given properties map have precedence, even if their value isnull
(i.e. a null value "erase" the default property value). Entries with null value after the union will be omitted.This method is invoked by all
createFoo(Map<String,?>, …)
methods.- Parameters:
properties
- the user-supplied properties.- Returns:
- the union of the given properties with the default properties.
-
createGeocentricCRS
public GeocentricCRS createGeocentricCRS(Map<String,?> properties, GeodeticDatum datum, CartesianCS cs) throws FactoryException
Creates a geocentric coordinate reference system from a Cartesian coordinate system. Geocentric CRS have their origin at the approximate centre of mass of the earth. An alternate method allows creation of the same kind of CRS with spherical coordinate system instead than a Cartesian one.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultGeocentricCRS
instance.- Specified by:
createGeocentricCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.datum
- the geodetic datum to use in created CRS.cs
- the three-dimensional Cartesian coordinate system for the created CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
GeodeticAuthorityFactory.createGeocentricCRS(String)
,DefaultGeocentricCRS(Map, GeodeticDatum, CartesianCS)
-
createCartesianCS
public CartesianCS createCartesianCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2) throws FactoryException
Creates a three-dimensional Cartesian coordinate system from the given set of axis. This coordinate system can be used with geocentric, engineering and derived CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultCartesianCS
instance.- Specified by:
createCartesianCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis (e.g. “Geocentric X”).axis1
- the second axis (e.g. “Geocentric Y”).axis2
- the third axis (e.g. “Geocentric Z”).- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultCartesianCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createCartesianCS(String)
-
createGeocentricCRS
public GeocentricCRS createGeocentricCRS(Map<String,?> properties, GeodeticDatum datum, SphericalCS cs) throws FactoryException
Creates a geocentric coordinate reference system from a spherical coordinate system. Geocentric CRS have their origin at the approximate centre of mass of the earth. An alternate method allows creation of the same kind of CRS with Cartesian coordinate system instead than a spherical one.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultGeocentricCRS
instance.- Specified by:
createGeocentricCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.datum
- geodetic datum to use in created CRS.cs
- the spherical coordinate system for the created CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultGeocentricCRS(Map, GeodeticDatum, SphericalCS)
,GeodeticAuthorityFactory.createGeocentricCRS(String)
-
createSphericalCS
public SphericalCS createSphericalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2) throws FactoryException
Creates a spherical coordinate system from the given set of axis. This coordinate system can be used with geocentric, engineering and derived CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultSphericalCS
instance.- Specified by:
createSphericalCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis (e.g. “Spherical latitude”).axis1
- the second axis (e.g. “Spherical longitude”).axis2
- the third axis (e.g. “Geocentric radius”).- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultSphericalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createSphericalCS(String)
-
createGeographicCRS
public GeographicCRS createGeographicCRS(Map<String,?> properties, GeodeticDatum datum, EllipsoidalCS cs) throws FactoryException
Creates a geographic coordinate reference system. It can be (latitude, longitude) or (longitude, latitude), optionally with an ellipsoidal height.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultGeographicCRS
instance.- Specified by:
createGeographicCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.datum
- geodetic datum to use in created CRS.cs
- the two- or three-dimensional ellipsoidal coordinate system for the created CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultGeographicCRS(Map, GeodeticDatum, EllipsoidalCS)
,GeodeticAuthorityFactory.createGeographicCRS(String)
-
createGeodeticDatum
public GeodeticDatum createGeodeticDatum(Map<String,?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian) throws FactoryException
Creates geodetic datum from ellipsoid and (optionally) Bursa-Wolf parameters. Geodetic datum defines the location and orientation of an ellipsoid that approximates the shape of the earth. This datum can be used with geographic, geocentric and engineering CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultGeodeticDatum
instance.- Specified by:
createGeodeticDatum
in interfaceDatumFactory
- Parameters:
properties
- name and other properties to give to the new object.ellipsoid
- the ellipsoid to use in new geodetic datum.primeMeridian
- the prime meridian to use in new geodetic datum.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultGeodeticDatum(Map, Ellipsoid, PrimeMeridian)
,GeodeticAuthorityFactory.createGeodeticDatum(String)
-
createPrimeMeridian
public PrimeMeridian createPrimeMeridian(Map<String,?> properties, double longitude, Unit<Angle> angularUnit) throws FactoryException
Creates a prime meridian, relative to Greenwich. Defines the origin from which longitude values are determined.The default implementation creates a
DefaultPrimeMeridian
instance.- Specified by:
createPrimeMeridian
in interfaceDatumFactory
- Parameters:
properties
- name and other properties to give to the new object.longitude
- the longitude of prime meridian in supplied angular units East of Greenwich.angularUnit
- the angular units of longitude.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultPrimeMeridian(Map, double, Unit)
,GeodeticAuthorityFactory.createPrimeMeridian(String)
-
createEllipsoidalCS
public EllipsoidalCS createEllipsoidalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1) throws FactoryException
Creates an ellipsoidal coordinate system without ellipsoidal height. It can be (latitude, longitude) or (longitude, latitude).Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultEllipsoidalCS
instance.- Specified by:
createEllipsoidalCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis (e.g. “Geodetic latitude”).axis1
- the second axis (e.g. “Geodetic longitude”).- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultEllipsoidalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createEllipsoidalCS(String)
-
createEllipsoidalCS
public EllipsoidalCS createEllipsoidalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2) throws FactoryException
Creates an ellipsoidal coordinate system with ellipsoidal height. It can be (latitude, longitude, height) or (longitude, latitude, height).Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultEllipsoidalCS
instance.- Specified by:
createEllipsoidalCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis (e.g. “Geodetic latitude”).axis1
- the second axis (e.g. “Geodetic longitude”).axis2
- the third axis (e.g. “Ellipsoidal height”).- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultEllipsoidalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createEllipsoidalCS(String)
-
createEllipsoid
public Ellipsoid createEllipsoid(Map<String,?> properties, double semiMajorAxis, double semiMinorAxis, Unit<Length> unit) throws FactoryException
Creates an ellipsoid from semi-axis length values. The default implementation creates aDefaultEllipsoid
instance.- Specified by:
createEllipsoid
in interfaceDatumFactory
- Parameters:
properties
- name and other properties to give to the new object.semiMajorAxis
- the equatorial radius in supplied linear units.semiMinorAxis
- the polar radius in supplied linear units.unit
- the linear units of ellipsoid axes.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultEllipsoid.createEllipsoid(Map, double, double, Unit)
,GeodeticAuthorityFactory.createEllipsoid(String)
-
createFlattenedSphere
public Ellipsoid createFlattenedSphere(Map<String,?> properties, double semiMajorAxis, double inverseFlattening, Unit<Length> unit) throws FactoryException
Creates an ellipsoid from a major semi-axis length and inverse flattening. The default implementation creates aDefaultEllipsoid
instance.- Specified by:
createFlattenedSphere
in interfaceDatumFactory
- Parameters:
properties
- name and other properties to give to the new object.semiMajorAxis
- the equatorial radius in supplied linear units.inverseFlattening
- the eccentricity of ellipsoid.unit
- the linear units of major axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultEllipsoid.createFlattenedSphere(Map, double, double, Unit)
,GeodeticAuthorityFactory.createEllipsoid(String)
-
createProjectedCRS
public ProjectedCRS createProjectedCRS(Map<String,?> properties, GeographicCRS baseCRS, Conversion conversion, CartesianCS derivedCS) throws FactoryException
Creates a projected coordinate reference system from a conversion. Projected CRS are used to approximate the shape of the earth on a planar surface in such a way that the distortion that is inherent to the approximation is controlled and known.Dependencies: the components needed by this method can be created by the following methods:The suppliedcreateCoordinateSystemAxis(Map, String, AxisDirection, Unit)
createCartesianCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
createEllipsoidalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
- One of:
createPrimeMeridian(Map, double, Unit)
createGeodeticDatum(Map, Ellipsoid, PrimeMeridian)
createGeographicCRS(Map, GeodeticDatum, EllipsoidalCS)
DefaultCoordinateOperationFactory.createDefiningConversion(Map, OperationMethod, ParameterValueGroup)
conversion
argument shall not includes the operation steps for performing unit conversions and change of axis order since those operations will be inferred by this constructor.The default implementation creates a
DefaultProjectedCRS
instance.- Specified by:
createProjectedCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.baseCRS
- the geographic coordinate reference system to base projection on.conversion
- the defining conversion from a normalized base to a normalized derived CRS.derivedCS
- the coordinate system for the projected CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultProjectedCRS(Map, GeographicCRS, Conversion, CartesianCS)
,GeodeticAuthorityFactory.createProjectedCRS(String)
-
createCartesianCS
public CartesianCS createCartesianCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1) throws FactoryException
Creates a two-dimensional Cartesian coordinate system from the given pair of axis. This coordinate system can be used with projected, engineering and derived CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultCartesianCS
instance.- Specified by:
createCartesianCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis (e.g. “Easting”).axis1
- the second axis (e.g. “Northing”).- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultCartesianCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createCartesianCS(String)
-
createDerivedCRS
public DerivedCRS createDerivedCRS(Map<String,?> properties, CoordinateReferenceSystem baseCRS, Conversion conversion, CoordinateSystem derivedCS) throws FactoryException
Creates a derived coordinate reference system from a conversion. The derived CRS returned by this method may also implement theGeodeticCRS
,VerticalCRS
,TemporalCRS
orEngineeringCRS
interface depending on the type of the base CRS and the coordinate system.Dependencies: the components needed by this method can be created by the following methods:The suppliedcreateCoordinateSystemAxis(Map, String, AxisDirection, Unit)
- A
createFooCS(…)
method for Cartesian, spherical, ellipsoidal, vertical, temporal, linear, affine, polar, cylindrical or user-defined CS. - An other
createFooCRS(…)
method for geocentric, geographic, vertical, temporal or engineering CRS. DefaultCoordinateOperationFactory.createDefiningConversion(Map, OperationMethod, ParameterValueGroup)
conversion
argument shall not includes the operation steps for performing unit conversions and change of axis order since those operations will be inferred by this constructor.The default implementation creates a
DefaultDerivedCRS
instance.- Specified by:
createDerivedCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.baseCRS
- the coordinate reference system to base projection on. Shall be an instance ofSingleCRS
.conversion
- the defining conversion from a normalized base to a normalized derived CRS.derivedCS
- the coordinate system for the derived CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultDerivedCRS.create(Map, SingleCRS, Conversion, CoordinateSystem)
,GeodeticAuthorityFactory.createDerivedCRS(String)
-
createVerticalCRS
public VerticalCRS createVerticalCRS(Map<String,?> properties, VerticalDatum datum, VerticalCS cs) throws FactoryException
Creates a vertical coordinate reference system. Vertical CRSs make use of the direction of gravity to define the concept of height or depth, but the relationship with gravity may not be straightforward.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultVerticalCRS
instance.- Specified by:
createVerticalCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.datum
- the vertical datum to use in created CRS.cs
- the vertical coordinate system for the created CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultVerticalCRS(Map, VerticalDatum, VerticalCS)
,GeodeticAuthorityFactory.createVerticalCRS(String)
-
createVerticalDatum
public VerticalDatum createVerticalDatum(Map<String,?> properties, VerticalDatumType type) throws FactoryException
Creates a vertical datum from an enumerated type value. The default implementation creates aDefaultVerticalDatum
instance.- Specified by:
createVerticalDatum
in interfaceDatumFactory
- Parameters:
properties
- name and other properties to give to the new object.type
- the type of this vertical datum (often geoidal).- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultVerticalDatum(Map, VerticalDatumType)
,GeodeticAuthorityFactory.createVerticalDatum(String)
-
createVerticalCS
public VerticalCS createVerticalCS(Map<String,?> properties, CoordinateSystemAxis axis) throws FactoryException
Creates a vertical coordinate system. This coordinate system can be used with vertical and derived CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultVerticalCS
instance.- Specified by:
createVerticalCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis
- the single axis (e.g. “height” or “depth”).- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultVerticalCS(Map, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createVerticalCS(String)
-
createTemporalCRS
public TemporalCRS createTemporalCRS(Map<String,?> properties, TemporalDatum datum, TimeCS cs) throws FactoryException
Creates a temporal coordinate reference system.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultTemporalCRS
instance.- Specified by:
createTemporalCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.datum
- the temporal datum to use in created CRS.cs
- the temporal coordinate system for the created CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultTemporalCRS(Map, TemporalDatum, TimeCS)
,GeodeticAuthorityFactory.createTemporalCRS(String)
-
createTemporalDatum
public TemporalDatum createTemporalDatum(Map<String,?> properties, Date origin) throws FactoryException
Creates a temporal datum from an enumerated type value. The default implementation creates aDefaultTemporalDatum
instance.- Specified by:
createTemporalDatum
in interfaceDatumFactory
- Parameters:
properties
- name and other properties to give to the new object.origin
- the date and time origin of this temporal datum.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultTemporalDatum(Map, Date)
,GeodeticAuthorityFactory.createTemporalDatum(String)
-
createTimeCS
public TimeCS createTimeCS(Map<String,?> properties, CoordinateSystemAxis axis) throws FactoryException
Creates a temporal coordinate system. This coordinate system can be used with temporal and derived CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultTimeCS
instance.- Specified by:
createTimeCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis
- the single axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultTimeCS(Map, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createTimeCS(String)
-
createParametricCRS
public DefaultParametricCRS createParametricCRS(Map<String,?> properties, DefaultParametricDatum datum, DefaultParametricCS cs) throws FactoryException
Creates a parametric coordinate reference system. Parametric CRS can be used for physical properties or functions that vary monotonically with height. A typical example is the pressure in meteorological applications.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultParametricCRS
instance.Warning: in a future SIS version, the parameter types may be changed toorg.opengis.referencing.datum.ParametricDatum
andorg.opengis.referencing.cs.ParametricCS
, and the return type may be changed toorg.opengis.referencing.crs.ParametricCRS
. Those change are pending GeoAPI revision.- Parameters:
properties
- name and other properties to give to the new object.datum
- the parametric datum to use in created CRS.cs
- the parametric coordinate system for the created CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultParametricCRS(Map, DefaultParametricDatum, DefaultParametricCS)
,GeodeticAuthorityFactory.createParametricCRS(String)
-
createParametricDatum
public DefaultParametricDatum createParametricDatum(Map<String,?> properties) throws FactoryException
Creates a parametric datum. The default implementation creates aDefaultParametricDatum
instance.Warning: in a future SIS version, the return type may be changed toorg.opengis.referencing.datum.ParametricDatum
. This change is pending GeoAPI revision.- Parameters:
properties
- name and other properties to give to the new object.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultParametricDatum(Map)
,GeodeticAuthorityFactory.createParametricDatum(String)
-
createParametricCS
public DefaultParametricCS createParametricCS(Map<String,?> properties, CoordinateSystemAxis axis) throws FactoryException
Creates a parametric coordinate system. This coordinate system can be used only with parametric CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultParametricCS
instance.Warning: in a future SIS version, the return type may be changed toorg.opengis.referencing.cs.ParametricCS
. This change is pending GeoAPI revision.- Parameters:
properties
- name and other properties to give to the new object.axis
- the single axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultParametricCS(Map, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createParametricCS(String)
-
createCompoundCRS
public CompoundCRS createCompoundCRS(Map<String,?> properties, CoordinateReferenceSystem... components) throws FactoryException
Creates a compound coordinate reference system from an ordered list of CRS components. Apache SIS is permissive on the order of components that can be used in a compound CRS. However for better inter-operability, users are encouraged to follow the order mandated by ISO 19162:- A mandatory horizontal CRS (only one of two-dimensional
GeographicCRS
orProjectedCRS
orEngineeringCRS
). - Optionally followed by a
VerticalCRS
or aParametricCRS
(but not both). - Optionally followed by a
TemporalCRS
.
DefaultCompoundCRS
instance.- Specified by:
createCompoundCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.components
- the sequence of coordinate reference systems making the compound CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultCompoundCRS(Map, CoordinateReferenceSystem...)
,GeodeticAuthorityFactory.createCompoundCRS(String)
,CRS.compound(CoordinateReferenceSystem...)
- A mandatory horizontal CRS (only one of two-dimensional
-
createImageCRS
public ImageCRS createImageCRS(Map<String,?> properties, ImageDatum datum, AffineCS cs) throws FactoryException
Creates an image coordinate reference system. The default implementation creates aDefaultImageCRS
instance.- Specified by:
createImageCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.datum
- the image datum to use in created CRS.cs
- the Cartesian or oblique Cartesian coordinate system for the created CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultImageCRS(Map, ImageDatum, AffineCS)
,GeodeticAuthorityFactory.createImageCRS(String)
-
createImageDatum
public ImageDatum createImageDatum(Map<String,?> properties, PixelInCell pixelInCell) throws FactoryException
Creates an image datum. The default implementation creates aDefaultImageDatum
instance.- Specified by:
createImageDatum
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.pixelInCell
- Specification of the way the image grid is associated with the image data attributes.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultImageDatum(Map, PixelInCell)
,GeodeticAuthorityFactory.createImageDatum(String)
-
createAffineCS
public AffineCS createAffineCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1) throws FactoryException
Creates a two-dimensional affine coordinate system from the given pair of axis. This coordinate system can be used with image and engineering CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultAffineCS
instance.- Specified by:
createAffineCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis.axis1
- the second axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultAffineCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
-
createEngineeringCRS
public EngineeringCRS createEngineeringCRS(Map<String,?> properties, EngineeringDatum datum, CoordinateSystem cs) throws FactoryException
Creates a engineering coordinate reference system. Engineering CRS can be divided into two broad categories:- earth-fixed systems applied to engineering activities on or near the surface of the earth;
- CRSs on moving platforms such as road vehicles, vessels, aircraft, or spacecraft.
Dependencies: the components needed by this method can be created by the following methods:The default implementation creates acreateCoordinateSystemAxis(Map, String, AxisDirection, Unit)
- A
createFooCS(…)
method for Cartesian, spherical, linear, affine, polar, cylindrical or user-defined CS. createEngineeringDatum(Map)
DefaultEngineeringCRS
instance.- Specified by:
createEngineeringCRS
in interfaceCRSFactory
- Parameters:
properties
- name and other properties to give to the new object.datum
- the engineering datum to use in created CRS.cs
- the coordinate system for the created CRS.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultEngineeringCRS(Map, EngineeringDatum, CoordinateSystem)
,GeodeticAuthorityFactory.createEngineeringCRS(String)
-
createEngineeringDatum
public EngineeringDatum createEngineeringDatum(Map<String,?> properties) throws FactoryException
Creates an engineering datum. The default implementation creates aDefaultEngineeringDatum
instance.- Specified by:
createEngineeringDatum
in interfaceDatumFactory
- Parameters:
properties
- name and other properties to give to the new object.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultEngineeringDatum(Map)
,GeodeticAuthorityFactory.createEngineeringDatum(String)
-
createAffineCS
public AffineCS createAffineCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2) throws FactoryException
Creates a three-dimensional affine coordinate system from the given set of axis. This coordinate system can be used with engineering CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultAffineCS
instance.- Specified by:
createAffineCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis.axis1
- the second axis.axis2
- the third axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultAffineCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
-
createCylindricalCS
public CylindricalCS createCylindricalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2) throws FactoryException
Creates a cylindrical coordinate system from the given set of axis. This coordinate system can be used with engineering CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultCylindricalCS
instance.- Specified by:
createCylindricalCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis.axis1
- the second axis.axis2
- the third axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultCylindricalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createCylindricalCS(String)
-
createPolarCS
public PolarCS createPolarCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1) throws FactoryException
Creates a polar coordinate system from the given pair of axis. This coordinate system can be used with engineering CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultPolarCS
instance.- Specified by:
createPolarCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis.axis1
- the second axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultPolarCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
,GeodeticAuthorityFactory.createPolarCS(String)
-
createLinearCS
public LinearCS createLinearCS(Map<String,?> properties, CoordinateSystemAxis axis) throws FactoryException
Creates a linear coordinate system. This coordinate system can be used with engineering CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultLinearCS
instance.- Specified by:
createLinearCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis
- the single axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultLinearCS(Map, CoordinateSystemAxis)
-
createUserDefinedCS
public UserDefinedCS createUserDefinedCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1) throws FactoryException
Creates a two-dimensional user defined coordinate system from the given pair of axis. This coordinate system can be used with engineering CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultUserDefinedCS
instance.- Specified by:
createUserDefinedCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis.axis1
- the second axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultUserDefinedCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
-
createUserDefinedCS
public UserDefinedCS createUserDefinedCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2) throws FactoryException
Creates a three-dimensional user defined coordinate system from the given set of axis. This coordinate system can be used with engineering CRS.Dependencies: the components needed by this method can be created by the following methods:The default implementation creates aDefaultUserDefinedCS
instance.- Specified by:
createUserDefinedCS
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.axis0
- the first axis.axis1
- the second axis.axis2
- the third axis.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultUserDefinedCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
-
createCoordinateSystemAxis
public CoordinateSystemAxis createCoordinateSystemAxis(Map<String,?> properties, String abbreviation, AxisDirection direction, Unit<?> unit) throws FactoryException
Creates a coordinate system axis from an abbreviation and a unit. Note that the axis name is constrained by ISO 19111 depending on the coordinate reference system type. See the GeoAPICoordinateSystemAxis
javadoc for more information.The default implementation creates a
DefaultCoordinateSystemAxis
instance.- Specified by:
createCoordinateSystemAxis
in interfaceCSFactory
- Parameters:
properties
- name and other properties to give to the new object.abbreviation
- the coordinate axis abbreviation.direction
- the axis direction.unit
- the coordinate axis unit.- Throws:
FactoryException
- if the object creation failed.- See Also:
DefaultCoordinateSystemAxis(Map, String, AxisDirection, Unit)
,GeodeticAuthorityFactory.createCoordinateSystemAxis(String)
-
createFromXML
public CoordinateReferenceSystem createFromXML(String xml) throws FactoryException
Creates a coordinate reference system object from a XML string. Note that the given argument is the XML document itself, not a URL to a XML document.The default implementation delegates to
XML.unmarshal(String)
- Specified by:
createFromXML
in interfaceCRSFactory
- Parameters:
xml
- coordinate reference system encoded in XML format.- Throws:
FactoryException
- if the object creation failed.- See Also:
XML.unmarshal(String)
,CRS.fromXML(String)
-
createFromWKT
public CoordinateReferenceSystem createFromWKT(String text) throws FactoryException
Creates a Coordinate Reference System object from a Well Known Text (WKT). This method understands both version 1 (a.k.a. OGC 01-009) and version 2 (a.k.a. ISO 19162) of the WKT format.Example: below is a slightly simplified WKT 2 string for a Mercator projection. For making this example smaller, some optionalIf the given text contains non-fatal anomalies (unknown or unsupported WKT elements, inconsistent unit definitions, unparsable axis abbreviations, etc.), warnings may be reported in a logger namedUNIT[…]
andORDER[…]
elements have been omitted.ProjectedCRS["SIRGAS 2000 / Brazil Mercator", BaseGeodCRS["SIRGAS 2000", Datum["Sistema de Referencia Geocentrico para las Americas 2000", Ellipsoid["GRS 1980", 6378137, 298.257222101]]], Conversion["Petrobras Mercator", Method["Mercator (variant B)", Id["EPSG",9805]], Parameter["Latitude of 1st standard parallel", -2], Parameter["Longitude of natural origin", -43], Parameter["False easting", 5000000], Parameter["False northing", 10000000]], CS[cartesian,2], Axis["easting (E)", east], Axis["northing (N)", north], LengthUnit["metre", 1], Id["EPSG",5641]]
"org.apache.sis.io.wkt"
. However this parser does not verify if the overall parsed object matches the EPSG (or other authority) definition, since this geodetic object factory is not an authority factory. For such verification, see theCRS.fromWKT(String)
convenience method.Usage and performance considerationsThe default implementation uses a shared instance ofWKTFormat
with the addition of thread-safety. This is okay for occasional use, but is sub-optimal if this method is extensively used in a multi-thread environment. Furthermore this method offers no control on the WKT conventions in use and on the handling of warnings. Applications which need to parse a large amount of WKT strings should consider to use theWKTFormat
class instead than this method.- Specified by:
createFromWKT
in interfaceCRSFactory
- Specified by:
createFromWKT
in interfaceParser
- Parameters:
text
- coordinate system encoded in Well-Known Text format (version 1 or 2).- Returns:
- the result of parsing the given text.
- Throws:
FactoryException
- if the object creation failed.- See Also:
org.apache.sis.io.wkt
,CRS.fromWKT(String)
, WKT 2 specification, Legacy WKT 1
-
-