 All Superinterfaces:
AuthorityFactory
,Factory
 Since:
 3.1

Method Summary
Modifier and TypeMethodDescriptionboolean
Determine whether two CRSs are members of one ensemble.Extracts coordinate operation details from the registry.Finds or infers any coordinate operations for which the given CRSs are the source and target, in that order.Extracts CRS details from the registry.Methods inherited from interface org.opengis.referencing.AuthorityFactory
createObject, getAuthority, getAuthorityCodes, getDescriptionText, getDescriptionText

Method Details

findCoordinateReferenceSystem
@UML(identifier="findCoordinateReferenceSystem", specification=ISO_19111) CoordinateReferenceSystem findCoordinateReferenceSystem(String code) throws FactoryException Extracts CRS details from the registry. Parameters:
code
 CRS identifier allocated by the authority. Returns:
 the CRS for the given authority code.
 Throws:
NoSuchAuthorityCodeException
 if the specifiedcode
was not found.FactoryException
 if the object creation failed for some other reason.

findCoordinateOperation
@UML(identifier="findCoordinateOperation", specification=ISO_19111) CoordinateOperation findCoordinateOperation(String code) throws FactoryException Extracts coordinate operation details from the registry. Parameters:
code
 operation identifier allocated by the authority. Returns:
 the operation for the given authority code.
 Throws:
NoSuchAuthorityCodeException
 if the specifiedcode
was not found.FactoryException
 if the object creation failed for some other reason.

findCoordinateOperations
@UML(identifier="findCoordinateOperations", specification=ISO_19111) Set<CoordinateOperation> findCoordinateOperations(CoordinateReferenceSystem source, CoordinateReferenceSystem target) throws FactoryException Finds or infers any coordinate operations for which the given CRSs are the source and target, in that order.Implementation considerations
Coordinate transformation services should be able to automatically derive coordinate operations that are not stored explicitly in any permanent data store, in other words determine their own concatenated or inverse operations. The reason is that it is practically impossible to store all possible pairs of coordinate reference systems in explicitly defined coordinate operations.Coordinate transformation services should also be able to derive or infer the inverse of any coordinate operation (from B to A) from its complementary forward operation (A to B). Geodetic datasets may record only one of the two operations that may exist between any two coordinate reference systems. The inverse operation is then inferred by the application software logic from the stored operation. In some cases, the algorithm for the inverse operation is the same as the forward algorithm, and only the signs of the parameter values reversed. In some other cases, the forward and inverse methods imply two algorithms, but the parameters values are the same. The latter situation generally applies to map projections.
The implementation should apply meaningful constraints and validations to this process. For example, it may be mathematically possible to derive a concatenated coordinate operation that will transform North American Datum 1983 coordinates to Australian National Datum, but in a practical sense that operation would be meaningless. The operation can be determined as invalid with a comparison of the two areas of validity and the conclusion that there is no overlap between these.
 Parameters:
source
 the source CRS.target
 the target CRS. Returns:
 coordinate operations found or inferred between the given pair CRSs. May be an empty set.
 Throws:
FactoryException
 if an error occurred while searching for coordinate operations.

areMembersOfSameEnsemble
@UML(identifier="areMembersOfSameEnsemble", specification=ISO_19111) boolean areMembersOfSameEnsemble(CoordinateReferenceSystem source, CoordinateReferenceSystem target) throws FactoryException Determine whether two CRSs are members of one ensemble. If this method returnstrue
, then for low accuracy purposes coordinate sets referenced to these CRSs may be merged without coordinate transformation. The attributeDatumEnsemble.getEnsembleAccuracy()
gives some indication of the inaccuracy introduced through such merger. Parameters:
source
 the source CRS.target
 the target CRS. Returns:
 whether the two CRSs are members of one ensemble.
 Throws:
FactoryException
 if an error occurred while searching for ensemble information in the registry.
