Features and Geometries

Features are used to represent basic geographic elements in a vector system. These are composed of both geometries and attributes.

Java Topology Suite (JTS) is used as the current geometry model. This library is an implementation of the Simple Features Specification for SQL, http://www.opengis.org/docs/99-049.pdf. It also provides in memory spatial indexing support and robust topologic operations, though they are not used much at present in the codebase.

If you're willing to add some vector computation operations (for example, overlay) please step up: we need someone willing to work on an operation API and the associated implementations. See the Process API page for more information.

Grid coverages

A grid coverage provides support for the raster data format, that is, a georeferenced grid of numbers that can be used to represent data ranging from satellite images, to digital elevation models, noise distribution and so on. See also the OpenGIS specification about grid coverages, http://www.opengis.org/docs/01-004.pdf.

Grid coverages are based on the JAI library which provides support for data management, presentation, image data format access, tiling support, a framework for raster data processing with lots of predefined operators.

Coordinate Transformation

The cts-coordtrans (CTS) module implements a subset of the OGC's Coordinate Transformation Services specification, http://www.opengis.org/docs/01-009.pdf. It provides an implementation for general positioning, coordinate reference systems, and coordinate transformations.

Renderers

Geotools has two renderer implementations:

LiteRenderer - a 'stateless' renderer, particularly useful in server-side environments. Main features: code simplicity and low memory footprint, but it's faster than J2D only for the first map rendering.

J2D - a 'stateful' renderer with optimizations for update rate, good for interactive client-side displays. It's way more complex but supports on the fly coordinate reprojection, fast update by intelligent data decimation and memory caching.

Styling

Allows for symbolizing (colour, line thickness, opacity, etc.) of datasets. This is closely modeled on, and fully supporting, the OpenGIS Styled Layer Descriptor specification, http://www.opengis.org/docs/02-070.pdf. These can be stored as XML documents.

Filter Encodings

Filters provide a way to specify a subset of features to operate on. This supports both attribute and spatial constraints and a method of storing these as XML documents.

Graph

Allows the creation of graphs and networks based on MultiLineStrings or arbitray Geometries and Spatial Relationships. Graphs can be walked using the visitor pattern. Common walks, such as shortest route, are already available. Other walks may also be defined by the user.

Validation

This provides a method to validate features base on different constraints. Allows the definition of test suites based on validaiton plug-ins. Tests suites (and indeed validaiton plug-ins) are configured using xml files.