| org.geotools.referencing.factory.ReferencingFactory org.geotools.referencing.factory.AbstractAuthorityFactory org.geotools.referencing.factory.AuthorityFactoryAdapter org.geotools.referencing.factory.TransformedAuthorityFactory org.geotools.referencing.factory.OrderedAxisAuthorityFactory
OrderedAxisAuthorityFactory | public class OrderedAxisAuthorityFactory extends TransformedAuthorityFactory implements CSAuthorityFactory,CRSAuthorityFactory,Comparator(Code) | | An authority factory which delegates all the work to an other factory, and reorder the axis in
some pre-determined order. This factory is mostly used by application expecting geographic
coordinates in (longitude, latitude) order, while most geographic CRS
specified in the EPSG database use the opposite axis order.
It is better to avoid this class if you can. This class exists primarily for compatibility with
external data or applications that assume (longitude, latitude) axis order
no matter what the EPSG database said, for example Shapefiles.
The axis order can be specified at construction time as an array of
. If no such array is explicitly specified, then the default order is
,
,
,
,
,
,
,
,
,
,
,
,
and
.
This means that, for example, axis with East or West direction will be placed before any
axis with North or South direction. Axis directions not specified in the table (for example
AxisDirection.OTHER OTHER ) will be ordered last. This is somewhat equivalent to the
ordering of
Double.NaN NaN values in an array of
double .
Notes:
- This class compares only the "
" axis
directions, so North and South are considered equivalent.
- The default direction order may changes in future Geotools version in order
to fit what appears to be the most common usage on the market.
- The actual axis ordering is determined by the
OrderedAxisAuthorityFactory.compare compare method
implementation. Subclasses may override this method if the want to provide a more
sophesticated axis ordering.
For some authority factories, an instance of this class can be obtained by passing a
Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER FORCE_LONGITUDE_FIRST_AXIS_ORDER hint
to the
(...) method. Whatever this hint is supported
or not is authority dependent. Example:
Hints hints = new Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE);
CRSAuthorityFactory factory = FactoryFinder.getCRSAuthorityFactory("EPSG", hints);
CoordinateReferenceSystem crs = factory.createCoordinateReferenceSystem("EPSG:4326");
This class is named ordered axis authority factory instead of something like
longitude first axis order because the axis order can be user-supplied. The
(longitude, latitude) order just appears to be the default one.
since: 2.2 version: $Id: OrderedAxisAuthorityFactory.java 25406 2007-05-03 18:08:10Z desruisseaux $ author: Martin Desruisseaux See Also: Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER See Also: Hints.FORCE_STANDARD_AXIS_UNITS |
Field Summary | |
final protected boolean | forceStandardDirections true if this authority factory should also force the axis to their standard
direction. | final protected boolean | forceStandardUnits true if this authority factory should also force all angular units to
decimal degrees and linear units to meters. |
Method Summary | |
public int | compare(Object axis1, Object axis2) Compares two axis for order. | protected Unit | replace(Unit units) Replaces the specified unit, if applicable. | protected AxisDirection | replace(AxisDirection direction) Replaces the specified direction, if applicable. |
forceStandardDirections | final protected boolean forceStandardDirections(Code) | | true if this authority factory should also force the axis to their standard
direction. For example if
true , then axis with increasing values toward South
will be converted to axis with increasing values toward North. The default value is
false .
See Also: Hints.FORCE_STANDARD_AXIS_DIRECTIONS since: 2.3 |
forceStandardUnits | final protected boolean forceStandardUnits(Code) | | true if this authority factory should also force all angular units to
decimal degrees and linear units to meters. The default value is
false .
See Also: Hints.FORCE_STANDARD_AXIS_UNITS since: 2.3 |
OrderedAxisAuthorityFactory | public OrderedAxisAuthorityFactory(String authority, Hints userHints, AxisDirection[] axisOrder) throws FactoryRegistryException, IllegalArgumentException(Code) | | Creates a factory which will reorder the axis of all objects created by the default
authority factories. The factories are fetched using
ReferencingFactoryFinder . This
constructor accepts the following hints:
Parameters: authority - The authority to wraps (example: "EPSG" ). If null ,then all authority factories must be explicitly specified in the set of hints. Parameters: userHints - An optional set of hints, or null if none. Parameters: axisOrder - An array of axis directions that determine the axis order wanted,or null for the default axis order. throws: FactoryRegistryException - if at least one factory can not be obtained. throws: IllegalArgumentException - If at least two axis directions are colinear. since: 2.3 |
OrderedAxisAuthorityFactory | public OrderedAxisAuthorityFactory(AbstractAuthorityFactory factory, Hints userHints, AxisDirection[] axisOrder) throws IllegalArgumentException(Code) | | Creates a factory which will reorder the axis of all objects created by the supplied
factory. This constructor accepts the following optional hints:
Parameters: factory - The factory that produces objects using arbitrary axis order. Parameters: userHints - An optional set of hints, or null if none. Parameters: axisOrder - An array of axis directions that determine the axis order wanted,or null for the default axis order. throws: IllegalArgumentException - If at least two axis directions are colinear. since: 2.3 |
compare | public int compare(Object axis1, Object axis2)(Code) | | Compares two axis for order. This method is invoked automatically by the
OrderedAxisAuthorityFactory.replace(CoordinateSystem) replace method for ordering the axis in a
coordinate system. The default implementation orders the axis according their
, using the direction
table given at
(see also the class description).
Subclasses may override this method if they want to define a more sophesticated
axis ordering.
Parameters: axis1 - The first axis to compare. Parameters: axis2 - The second axis to compare. A negative integer if axis1 should appears before axis2 , or apositive number if axis2 should appears before axis1 , or 0 ifthe two axis are unordered one relative to the other.CoordinateSystemAxis since: 2.3 |
replace | protected Unit replace(Unit units)(Code) | | Replaces the specified unit, if applicable. This method is invoked automatically by the
OrderedAxisAuthorityFactory.replace(CoordinateSystem) method. The default implementation replaces the unit
only if the
Hints.FORCE_STANDARD_AXIS_UNITS FORCE_STANDARD_AXIS_UNITS hint was
specified as
Boolean.TRUE TRUE at construction time. In such case, the default
substitution table is:
- Any linear units converted to
-
and
converted to
This default substitution table may be expanded in future Geotools versions.
since: 2.3 |
replace | protected AxisDirection replace(AxisDirection direction)(Code) | | Replaces the specified direction, if applicable. This method is invoked automatically by the
OrderedAxisAuthorityFactory.replace(CoordinateSystem) method. The default implementation replaces the direction
only if the
Hints.FORCE_STANDARD_AXIS_DIRECTIONS FORCE_STANDARD_AXIS_DIRECTIONS hint
was specified as
Boolean.TRUE TRUE at construction time. In such case, the default
substitution table is as specified in the
AxisDirection.absolute method.
Subclasses may override this method if they want to use a different substitution table.
since: 2.3 |
Methods inherited from org.geotools.referencing.factory.TransformedAuthorityFactory | public Set createFromCoordinateReferenceSystemCodes(String sourceCode, String targetCode) throws FactoryException(Code)(Java Doc) public synchronized void dispose() throws FactoryException(Code)(Java Doc) public int getPriority()(Code)(Java Doc) protected Unit replace(Unit units) throws FactoryException(Code)(Java Doc) protected AxisDirection replace(AxisDirection direction) throws FactoryException(Code)(Java Doc) protected CoordinateSystemAxis replace(CoordinateSystemAxis axis) throws FactoryException(Code)(Java Doc) protected CoordinateSystem replace(CoordinateSystem cs) throws FactoryException(Code)(Java Doc) protected Datum replace(Datum datum) throws FactoryException(Code)(Java Doc) protected CoordinateReferenceSystem replace(CoordinateReferenceSystem crs) throws FactoryException(Code)(Java Doc) protected CoordinateOperation replace(CoordinateOperation operation) throws FactoryException(Code)(Java Doc)
|
Fields inherited from org.geotools.referencing.factory.AuthorityFactoryAdapter | final protected CRSAuthorityFactory crsFactory(Code)(Java Doc) final protected CSAuthorityFactory csFactory(Code)(Java Doc) final protected DatumAuthorityFactory datumFactory(Code)(Java Doc) final protected CoordinateOperationAuthorityFactory operationFactory(Code)(Java Doc)
|
|
|