|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.deegree_impl.model.cs.CoordinateSystemFactory
Builds up complex objects from simpler objects or values.
CoordinateSystemFactory
allows applications to make coordinate
systems that cannot be created by a CoordinateSystemAuthorityFactory
.
This factory is very flexible, whereas the authority factory is easier to use.
So CoordinateSystemAuthorityFactory
can be used to make 'standard'
coordinate systems, and 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.
CS_CoordinateSystemFactory
Nested Class Summary | |
private class |
CoordinateSystemFactory.Export
Wrap a Info object for use with OpenGIS. |
Field Summary | |
private static CoordinateSystemFactory |
DEFAULT
Default coordinate system factory. |
private WeakHashSet |
pool
Set of weak references to existing coordinate systems. |
Constructor Summary | |
protected |
CoordinateSystemFactory()
Default constructor. |
private |
CoordinateSystemFactory(WeakHashSet pool)
Construct a new factory with the specified pool. |
Method Summary | |
CompoundCoordinateSystem |
createCompoundCoordinateSystem(java.lang.String name,
CoordinateSystem head,
CoordinateSystem tail)
Creates a compound coordinate system. |
Ellipsoid |
createEllipsoid(java.lang.String name,
double semiMajorAxis,
double semiMinorAxis,
Unit unit)
Creates an ellipsoid from radius values. |
Ellipsoid |
createFlattenedSphere(java.lang.String name,
double semiMajorAxis,
double inverseFlattening,
Unit unit)
Creates an ellipsoid from an major radius, and inverse flattening. |
GeographicCoordinateSystem |
createGeographicCoordinateSystem(java.lang.String name,
HorizontalDatum datum)
Creates a geographic coordinate system. |
GeographicCoordinateSystem |
createGeographicCoordinateSystem(java.lang.String name,
Unit unit,
HorizontalDatum datum,
PrimeMeridian meridian,
AxisInfo axis0,
AxisInfo axis1)
Creates a geographic coordinate system, which could be latitude/longiude or longitude/latitude. |
HorizontalDatum |
createHorizontalDatum(java.lang.String name,
DatumType.Horizontal type,
Ellipsoid ellipsoid,
WGS84ConversionInfo toWGS84)
Creates horizontal datum from ellipsoid and Bursa-Wolf parameters. |
HorizontalDatum |
createHorizontalDatum(java.lang.String name,
Ellipsoid ellipsoid)
Creates horizontal datum from an ellipsoid. |
LocalCoordinateSystem |
createLocalCoordinateSystem(java.lang.String name,
LocalDatum datum,
Unit unit,
AxisInfo[] axes)
Creates a local coordinate system. |
LocalDatum |
createLocalDatum(java.lang.String name,
DatumType.Local type)
Creates a local datum. |
PrimeMeridian |
createPrimeMeridian(java.lang.String name,
Unit unit,
double longitude)
Creates a prime meridian, relative to Greenwich. |
ProjectedCoordinateSystem |
createProjectedCoordinateSystem(java.lang.String name,
GeographicCoordinateSystem gcs,
Projection projection)
Creates a projected coordinate system using the specified geographic system. |
ProjectedCoordinateSystem |
createProjectedCoordinateSystem(java.lang.String name,
GeographicCoordinateSystem gcs,
Projection projection,
Unit unit,
AxisInfo axis0,
AxisInfo axis1)
Creates a projected coordinate system using a projection object. |
Projection |
createProjection(java.lang.String name,
java.lang.String classification,
Ellipsoid ellipsoid,
java.awt.geom.Point2D centre,
java.awt.geom.Point2D translation,
double scaleFactor)
Convenience method for constructing a projection using the specified ellipsoid. |
Projection |
createProjection(java.lang.String name,
java.lang.String classification,
ParameterList parameters)
Creates a projection. |
ParameterList |
createProjectionParameterList(java.lang.String classification)
Returns a default parameter list for the specified projection. |
VerticalCoordinateSystem |
createVerticalCoordinateSystem(java.lang.String name,
VerticalDatum datum)
Creates a vertical coordinate system from a datum. |
VerticalCoordinateSystem |
createVerticalCoordinateSystem(java.lang.String name,
VerticalDatum datum,
Unit unit,
AxisInfo axis)
Creates a vertical coordinate system from a datum and linear units. |
VerticalDatum |
createVerticalDatum(java.lang.String name,
DatumType.Vertical type)
Creates a vertical datum from an enumerated type value. |
static CoordinateSystemFactory |
getDefault()
Returns the default coordinate system factory. |
(package private) java.lang.Object |
toOpenGIS(java.lang.Object adapters)
Returns an OpenGIS interface for this info. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private static CoordinateSystemFactory DEFAULT
private final WeakHashSet pool
Constructor Detail |
private CoordinateSystemFactory(WeakHashSet pool)
protected CoordinateSystemFactory()
Method Detail |
public static CoordinateSystemFactory getDefault()
public GeographicCoordinateSystem createGeographicCoordinateSystem(java.lang.String name, HorizontalDatum datum)
name
- Name to give new object.datum
- Horizontal datum for created coordinate system.public GeographicCoordinateSystem createGeographicCoordinateSystem(java.lang.String name, Unit unit, HorizontalDatum datum, PrimeMeridian meridian, AxisInfo axis0, AxisInfo axis1)
name
- Name to give new object.unit
- Angular units for created coordinate system.datum
- Horizontal datum for created coordinate system.meridian
- Prime Meridian for created coordinate system.axis0
- Details of 0th ordinates.axis1
- Details of 1st ordinates.public ProjectedCoordinateSystem createProjectedCoordinateSystem(java.lang.String name, GeographicCoordinateSystem gcs, Projection projection)
name
- Name to give new object.gcs
- Geographic coordinate system to base projection on.projection
- Projection from geographic to projected coordinate system.public ProjectedCoordinateSystem createProjectedCoordinateSystem(java.lang.String name, GeographicCoordinateSystem gcs, Projection projection, Unit unit, AxisInfo axis0, AxisInfo axis1)
name
- Name to give new object.gcs
- Geographic coordinate system to base projection on.projection
- Projection from geographic to projected coordinate system.unit
- Linear units of returned PCS.axis0
- Details of 0th ordinates in returned PCS coordinates.axis1
- Details of 1st ordinates in returned PCS coordinates.public VerticalCoordinateSystem createVerticalCoordinateSystem(java.lang.String name, VerticalDatum datum)
name
- Name to give new object.datum
- Datum to use for new coordinate system.public VerticalCoordinateSystem createVerticalCoordinateSystem(java.lang.String name, VerticalDatum datum, Unit unit, AxisInfo axis)
name
- Name to give new object.datum
- Datum to use for new coordinate system.unit
- Units to use for new coordinate system.axis
- Axis to use for new coordinate system.public CompoundCoordinateSystem createCompoundCoordinateSystem(java.lang.String name, CoordinateSystem head, CoordinateSystem tail)
name
- Name to give new object.head
- Coordinate system to use for earlier ordinates.tail
- Coordinate system to use for later ordinates.public LocalCoordinateSystem createLocalCoordinateSystem(java.lang.String name, LocalDatum datum, Unit unit, AxisInfo[] axes)
name
- Name to give new object.datum
- Local datum to use in created CS.unit
- Units to use for all axes in created CS.axes
- Axes to use in created CS.public Ellipsoid createEllipsoid(java.lang.String name, double semiMajorAxis, double semiMinorAxis, Unit unit)
name
- Name to give new object.semiMajorAxis
- Equatorial radius in supplied linear units.semiMinorAxis
- Polar radius in supplied linear units.unit
- Linear units of ellipsoid axes.public Ellipsoid createFlattenedSphere(java.lang.String name, double semiMajorAxis, double inverseFlattening, Unit unit)
name
- Name to give new object.semiMajorAxis
- Equatorial radius in supplied linear units.inverseFlattening
- Eccentricity of ellipsoid.unit
- Linear units of major axis.public PrimeMeridian createPrimeMeridian(java.lang.String name, Unit unit, double longitude)
name
- Name to give new object.unit
- Angular units of longitude.longitude
- Longitude of prime meridian in supplied angular units East of Greenwich.public Projection createProjection(java.lang.String name, java.lang.String classification, ParameterList parameters)
"semi_major"
and "semi_minor"
parameters. The set of legal parameters and their default values can be queried
using createProjectionParameterList(java.lang.String)
. Example:
{link ParameterList} param =createProjectionParameterList
("Transverse_Mercator") .setParameter("semi_major", 6378206.4) .setParameter("semi_minor", 6356583.8);Projection
proj = createProjection("My projection", "Transverse_Mercator", param);
name
- Name to give new object.classification
- Classification string for projection (e.g. "Transverse_Mercator").parameters
- Parameters to use for projection. A default set of parameters can
be constructed using createProjectionParameterList
(classification)
and initialized
using a chain of setParameter(...)
calls.public Projection createProjection(java.lang.String name, java.lang.String classification, Ellipsoid ellipsoid, java.awt.geom.Point2D centre, java.awt.geom.Point2D translation, double scaleFactor)
name
- Name to give new object.classification
- Classification string for projection (e.g. "Transverse_Mercator").ellipsoid
- Ellipsoid parameter. If non-null, then "semi_major"
and "semi_minor"
parameters will be set according.centre
- Central meridian and latitude of origin, in degrees. If non-null, then
"central_meridian"
and "latitude_of_origin"
will be set according.translation
- False easting and northing, in metres. If non-null, then
"false_easting"
and "false_northing"
will be set according.public ParameterList createProjectionParameterList(java.lang.String classification)
classification
- Classification string for projection (e.g. "Transverse_Mercator").
createProjection(String, String, ParameterList)
public HorizontalDatum createHorizontalDatum(java.lang.String name, DatumType.Horizontal type, Ellipsoid ellipsoid, WGS84ConversionInfo toWGS84)
DatumType.Horizontal.OTHER
as the horizontalDatumType,
or create it via WKT.
name
- Name to give new object.type
- Type of horizontal datum to create.ellipsoid
- Ellipsoid to use in new horizontal datum.toWGS84
- Suggested approximate conversion from new datum to WGS84.public HorizontalDatum createHorizontalDatum(java.lang.String name, Ellipsoid ellipsoid)
DatumType.Horizontal.OTHER
.
name
- Name to give new object.ellipsoid
- Ellipsoid to use in new horizontal datum.public VerticalDatum createVerticalDatum(java.lang.String name, DatumType.Vertical type)
name
- Name to give new object.type
- Type of vertical datum to create.public LocalDatum createLocalDatum(java.lang.String name, DatumType.Local type)
name
- Name to give new object.type
- Type of local datum to create.final java.lang.Object toOpenGIS(java.lang.Object adapters)
Object
in order
to avoid too early class loading of OpenGIS interface.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |