API subsystems in deegree2
This page describes the software modules which the deegree framework consists of, and which provide the functionality that the clients and services use internally.
- deegree's geometry API bases on ISO 19107 specification
suppoted are: Points, Curves, Surfaces, Rings, Arcs, Circles, CompositeSurfaces, MultiPoints, MultiCurves, MultiSurfaces and GeometryCollections
- there adapter classes available for GML, WKT, JTS, Oracle and Postgis geometries.
- GML adapter supports GML 2.1 and 3.1 for wrapping and GML 3.1 for exporting geometries
- geometries can be transformed from into any CRS known by deegree
- most topological and geometric operations are supported
2. Raster Data
- deegree supports several raster formats
tif, jpeg, png, bmp and gif georeferenced by a worldfile and GeoTiff
16 BIT and 32 BIT tiff and GeoTiff are supported as data container (e.g. for DEM)
- georeferenced raster can be transformed into any CRS supported by deegree
- readers/converters are available in deegree for
- raw byte, int, float and double rasters (like idrisi .img)
- x,y,z formated text files can be converted into tiffs even if koordinates are not regular
- Raster can be spatially indexed and arranged in a resolution pyramid
- deegree supports creating and updating a spatial index for raster data
- the index can be stored in shapefiles or in a postgis database
- creating a spatial index deegree also creates a resolution pyramid for fast accessing different raster resolutions.
3. Feature Model
The feature model is used to represent feature objects in memory. Important use cases are the reading of GML feature collection documents or the requesting of FeatureCollection from a WFS. In both cases, the features are represented as feature objects. Some
- Supports complex features.
- Lookup of properties by !XPath, this is especially useful for complex features.
- Evaluation of filter predicates (find features from a feature collection that match a filter expression).
- Works with and without type information (feature types).
If a feature is persistent (i.e. stored, or to be stored in a datastore), it's feature type is a MappedFeatureType, which carries the mapping information.
4. Vector Data
4.1. Mapinfo Interchange Format MIF/MID
Two readers exist, one based on MapInfo 8.5 documentation, one based on an older version. The newer one is capable of extracting most geometries, and can also extract most features of the styling information and convert it to SLD (if you have some graphics files necessary for fill patterns etc.).
4.2. ESRI shape file format
Two readers exist:
- one capable of reading a lot of broken and non-broken shape files in 2D
- also capable of reading single shapes in a random access manner
- writing shape files in 2D is also supported
- can be indexed by an r-tree
- the other one capable of reading and writing shapes with z and/or m values
- but it's less tolerant with broken files
- does not support random access/bbox queries
5. Quadtrees in deegree
There are several Quadtree index implementations in deegree.
One is a database based implementation that can build a quadtree in a non-spatial DB. Insert/update/delete operations are supported.
Another one is a memory based implementation that can only hold points, and does not support the update operation.
- deegree WMS supports SLD 1.0.0 with no known limitations, and partially SE 1.1.0 for symbolizing raster data.
- deegree supports auto positioning of labels to avoid overlapping
- chart diagrams are supported for point symbolizers
- you can use ASCII code to render a character as a point symbol
- SVG files are supported as source for point symbolizers
- SVG symbols are rendered as vector graphics (since 2.6) if possible
- symbol size and line thickness can be defined in pixel or in meter
- Following projections are currently supported:
- Lambert Azimuthal Equal Area
- Stereographic Azimuthal (Alternative)
- Lambert Conformal Conic
- Transverse Mercator (Cassini-Soldner)
- Following transformations are supported:
- Prime-Meridian rotation
- 3-7 Parameter Helmert transformation
Geographic to Geodetic (2d->3d) transformation with height above ellipsoid
- Direct polynomial transformations (Least square approximation) using jai.
- Following types can be used:
- Projection (see above)
- Transformation (see above)
- Prime meridian
- Geodetic (uses ellipsoid, prime meridian and an optional Helmert transformation
- Coordinate Systems:
- Geographic - two Axis, a geodetic datum
- Projected - two axis, geographic crs and a projection
- Geodetic - three axis, geodetic datum
- Compound - projected with height axis
- Axis order is supported
- Default transformation-path uses helmert transformation and the wgs84 pivot crs.
- Following configuration types are supported:
- deegree's own crs configuration
- rudimentary proj4 support
- rudimentary gml 3.2.1 dictionary support
- Following configuration can be exported:
- deegree crs configuration.
- Tests for crs package exist
- Tools and utility classes using the crs api:
org.deegree.model.crs.GeoTransformer: supplying many functions for transforming rasters, geometries, featurecollections and lists of points.
- org.deegree.tools.srs.!DemoCRSTransform: tool for transforming coordinate pair or a file containing pairs
org.deegree.tools.srs.PolynomialParameterCreator: Create the parameters for a direct Polynomial transformation
- org.deegree.tools.srs.SRSInfo: output all available crs's and/or check if a given crs is available
- org.deegree.tools.srs.Transform[Raster|Shape]File: transform the given file.
A web client is also available. Please read the description of deegree coordinateCalculator.
- Supported versions:
- 1.0, returning of WSDL 1.1 supported
SOAP is implemented as Servlet filters, extracting the SOAP:Body which should contain the OGC request.
- SOAP with multiparts is supported
Header evaluation is very rudimentary almost not existing