org.opengis.cs
Interface CS_CoordinateSystemFactory

All Superinterfaces:
java.rmi.Remote
All Known Implementing Classes:
CoordinateSystemFactory.Export

public interface CS_CoordinateSystemFactory
extends java.rmi.Remote

Builds up complex objects from simpler objects or values. CS_CoordinateSystemFactory allows applications to make coordinate systems that cannot be created by a CS_CoordinateSystemAuthorityFactory. This factory is very flexible, whereas the authority factory is easier to use. So CS_CoordinateSystemAuthorityFactory can be used to make 'standard' coordinate systems, and CS_CoordinateSystemFactory can be used to make 'special' coordinate 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:
1.00
Version:
1.01
Author:
Martin Daly

Method Summary
 CS_CompoundCoordinateSystem createCompoundCoordinateSystem(java.lang.String name, CS_CoordinateSystem head, CS_CoordinateSystem tail)
          Creates a compound coordinate system.
 CS_Ellipsoid createEllipsoid(java.lang.String name, double semiMajorAxis, double semiMinorAxis, CS_LinearUnit linearUnit)
          Creates an ellipsoid from radius values.
 CS_FittedCoordinateSystem createFittedCoordinateSystem(java.lang.String name, CS_CoordinateSystem base, java.lang.String toBaseWKT, CS_AxisInfo[] arAxes)
          Creates a fitted coordinate system.
 CS_Ellipsoid createFlattenedSphere(java.lang.String name, double semiMajorAxis, double inverseFlattening, CS_LinearUnit linearUnit)
          Creates an ellipsoid from an major radius, and inverse flattening.
 CS_CoordinateSystem createFromWKT(java.lang.String wellKnownText)
          Creates a coordinate system object from a Well-Known Text string.
 CS_CoordinateSystem createFromXML(java.lang.String xml)
          Creates a coordinate system object from an XML string.
 CS_GeographicCoordinateSystem createGeographicCoordinateSystem(java.lang.String name, CS_AngularUnit angularUnit, CS_HorizontalDatum horizontalDatum, CS_PrimeMeridian primeMeridian, CS_AxisInfo axis0, CS_AxisInfo axis1)
          Creates a GCS, which could be Lat/Lon or Lon/Lat.
 CS_HorizontalDatum createHorizontalDatum(java.lang.String name, CS_DatumType horizontalDatumType, CS_Ellipsoid ellipsoid, CS_WGS84ConversionInfo toWGS84)
          Creates horizontal datum from ellipsoid and Bursa-Wolf parameters.
 CS_LocalCoordinateSystem createLocalCoordinateSystem(java.lang.String name, CS_LocalDatum datum, CS_Unit unit, CS_AxisInfo[] arAxes)
          Creates a local coordinate system.
 CS_LocalDatum createLocalDatum(java.lang.String name, CS_DatumType localDatumType)
          Creates a local datum.
 CS_PrimeMeridian createPrimeMeridian(java.lang.String name, CS_AngularUnit angularUnit, double longitude)
          Creates a prime meridian, relative to Greenwich.
 CS_ProjectedCoordinateSystem createProjectedCoordinateSystem(java.lang.String name, CS_GeographicCoordinateSystem gcs, CS_Projection projection, CS_LinearUnit linearUnit, CS_AxisInfo axis0, CS_AxisInfo axis1)
          Creates a projected coordinate system using a projection object.
 CS_Projection createProjection(java.lang.String name, java.lang.String wktProjectionClass, CS_ProjectionParameter[] parameters)
          Creates a projection.
 CS_VerticalCoordinateSystem createVerticalCoordinateSystem(java.lang.String name, CS_VerticalDatum verticalDatum, CS_LinearUnit verticalUnit, CS_AxisInfo axis)
          Creates a vertical coordinate system from a datum and linear units.
 CS_VerticalDatum createVerticalDatum(java.lang.String name, CS_DatumType verticalDatumType)
          Creates a vertical datum from an enumerated type value.
 

Method Detail

createFromXML

public CS_CoordinateSystem createFromXML(java.lang.String xml)
                                  throws java.rmi.RemoteException
Creates a coordinate system object from an XML string.

Parameters:
xml - Coordinate system encoded in XML format.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createFromWKT

public CS_CoordinateSystem createFromWKT(java.lang.String wellKnownText)
                                  throws java.rmi.RemoteException
Creates a coordinate system object from a Well-Known Text string.

Parameters:
wellKnownText - Coordinate system encoded in Well-Known Text format.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createCompoundCoordinateSystem

public CS_CompoundCoordinateSystem createCompoundCoordinateSystem(java.lang.String name,
                                                                  CS_CoordinateSystem head,
                                                                  CS_CoordinateSystem tail)
                                                           throws java.rmi.RemoteException
Creates a compound coordinate system.

Parameters:
name - Name to give new object.
head - Coordinate system to use for earlier ordinates.
tail - Coordinate system to use for later ordinates.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createFittedCoordinateSystem

public CS_FittedCoordinateSystem createFittedCoordinateSystem(java.lang.String name,
                                                              CS_CoordinateSystem base,
                                                              java.lang.String toBaseWKT,
                                                              CS_AxisInfo[] arAxes)
                                                       throws java.rmi.RemoteException
Creates a fitted coordinate system. The units of the axes in the fitted coordinate system will be inferred from the units of the base coordinate system. If the affine map performs 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 you should not rotate this coordinate system in any other plane.

Parameters:
name - Name to give new object.
base - Coordinate system to base the fitted CS on.
toBaseWKT - Well-Known Text of transform from returned CS to base CS.
arAxes - Axes for fitted coordinate system. The number of axes must match the source dimension of the transform "toBaseWKT".
Throws:
java.rmi.RemoteException - if a remote method call failed.

createLocalCoordinateSystem

public CS_LocalCoordinateSystem createLocalCoordinateSystem(java.lang.String name,
                                                            CS_LocalDatum datum,
                                                            CS_Unit unit,
                                                            CS_AxisInfo[] arAxes)
                                                     throws java.rmi.RemoteException
Creates a local coordinate system. The dimension of the local coordinate system is determined by the size of the axis array. All the axes will have the same units. If you want to make a coordinate system with mixed units, then you can make a compound coordinate system from different local coordinate systems.

Parameters:
name - Name to give new object.
datum - Local datum to use in created CS.
unit - Units to use for all axes in created CS.
arAxes - Axes to use in created CS.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createEllipsoid

public CS_Ellipsoid createEllipsoid(java.lang.String name,
                                    double semiMajorAxis,
                                    double semiMinorAxis,
                                    CS_LinearUnit linearUnit)
                             throws java.rmi.RemoteException
Creates an ellipsoid from radius values.

Parameters:
name - Name to give new object.
semiMajorAxis - Equatorial radius in supplied linear units.
semiMinorAxis - Polar radius in supplied linear units.
linearUnit - Linear units of ellipsoid axes.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createFlattenedSphere

public CS_Ellipsoid createFlattenedSphere(java.lang.String name,
                                          double semiMajorAxis,
                                          double inverseFlattening,
                                          CS_LinearUnit linearUnit)
                                   throws java.rmi.RemoteException
Creates an ellipsoid from an major radius, and inverse flattening.

Parameters:
name - Name to give new object.
semiMajorAxis - Equatorial radius in supplied linear units.
inverseFlattening - Eccentricity of ellipsoid.
linearUnit - Linear units of major axis.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createProjectedCoordinateSystem

public CS_ProjectedCoordinateSystem createProjectedCoordinateSystem(java.lang.String name,
                                                                    CS_GeographicCoordinateSystem gcs,
                                                                    CS_Projection projection,
                                                                    CS_LinearUnit linearUnit,
                                                                    CS_AxisInfo axis0,
                                                                    CS_AxisInfo axis1)
                                                             throws java.rmi.RemoteException
Creates a projected coordinate system using a projection object.

Parameters:
name - Name to give new object.
gcs - Geographic coordinate system to base projection on.
projection - Projection from GCS to PCS.
linearUnit - Linear units of returned PCS.
axis0 - Details of 0th ordinates in returned PCS coordinates.
axis1 - Details of 1st ordinates in returned PCS coordinates.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createProjection

public CS_Projection createProjection(java.lang.String name,
                                      java.lang.String wktProjectionClass,
                                      CS_ProjectionParameter[] parameters)
                               throws java.rmi.RemoteException
Creates a projection.

Parameters:
name - Name to give new object.
wktProjectionClass - Classification string for projection (e.g. "Transverse_Mercator").
parameters - Parameters to use for projection, in units of intended PCS.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createHorizontalDatum

public CS_HorizontalDatum createHorizontalDatum(java.lang.String name,
                                                CS_DatumType horizontalDatumType,
                                                CS_Ellipsoid ellipsoid,
                                                CS_WGS84ConversionInfo toWGS84)
                                         throws java.rmi.RemoteException
Creates horizontal datum from ellipsoid and Bursa-Wolf parameters. Since this method contains a set of Bursa-Wolf parameters, the created datum will always have a relationship to WGS84. If you wish to create a horizontal datum that has no relationship with WGS84, then you can either specify CS_HD_Other as the horizontalDatumType, or create it via WKT.

Parameters:
name - Name to give new object.
horizontalDatumType - Type of horizontal datum to create.
ellipsoid - Ellipsoid to use in new horizontal datum.
toWGS84 - Suggested approximate conversion from new datum to WGS84.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createPrimeMeridian

public CS_PrimeMeridian createPrimeMeridian(java.lang.String name,
                                            CS_AngularUnit angularUnit,
                                            double longitude)
                                     throws java.rmi.RemoteException
Creates a prime meridian, relative to Greenwich.

Parameters:
name - Name to give new object.
angularUnit - Angular units of longitude.
longitude - Longitude of prime meridian in supplied angular units East of Greenwich.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createGeographicCoordinateSystem

public CS_GeographicCoordinateSystem createGeographicCoordinateSystem(java.lang.String name,
                                                                      CS_AngularUnit angularUnit,
                                                                      CS_HorizontalDatum horizontalDatum,
                                                                      CS_PrimeMeridian primeMeridian,
                                                                      CS_AxisInfo axis0,
                                                                      CS_AxisInfo axis1)
                                                               throws java.rmi.RemoteException
Creates a GCS, which could be Lat/Lon or Lon/Lat.

Parameters:
name - Name to give new object.
angularUnit - Angular units for created GCS.
horizontalDatum - Horizontal datum for created GCS.
primeMeridian - Prime Meridian for created GCS.
axis0 - Details of 0th ordinates in returned GCS coordinates.
axis1 - Details of 1st ordinates in returned GCS coordinates.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createLocalDatum

public CS_LocalDatum createLocalDatum(java.lang.String name,
                                      CS_DatumType localDatumType)
                               throws java.rmi.RemoteException
Creates a local datum.

Parameters:
name - Name to give new object.
localDatumType - Type of local datum to create.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createVerticalDatum

public CS_VerticalDatum createVerticalDatum(java.lang.String name,
                                            CS_DatumType verticalDatumType)
                                     throws java.rmi.RemoteException
Creates a vertical datum from an enumerated type value.

Parameters:
name - Name to give new object.
verticalDatumType - Type of vertical datum to create.
Throws:
java.rmi.RemoteException - if a remote method call failed.

createVerticalCoordinateSystem

public CS_VerticalCoordinateSystem createVerticalCoordinateSystem(java.lang.String name,
                                                                  CS_VerticalDatum verticalDatum,
                                                                  CS_LinearUnit verticalUnit,
                                                                  CS_AxisInfo axis)
                                                           throws java.rmi.RemoteException
Creates a vertical coordinate system from a datum and linear units.

Parameters:
name - Name to give new object.
verticalDatum - Datum to use for new coordinate system.
verticalUnit - Units to use for new coordinate system.
axis - Axis to use for new coordinate system.
Throws:
java.rmi.RemoteException - if a remote method call failed.