The following are some of the features in the Geotools 2.0.0 release.
Geotools tries to support as many data formats as possible.
The DataStore interface is used to access vector data.
Data formats supported are:
- Shapefile - an ESRI shapefile (R/W)
- GML - Geography Markup Language (R)
- PostGIS - geometric objects for PostgreSQL (R)
- Oracle Spatial - Oracle's extension for spatial data (R)
- ArcSDE - ESRI's middleware for spatial databases (R)
- MySQL - support for the new geometry types
- GeoMedia - an Intergraph format (R)
- Tiger - Topologically Integrated Geographic Encoding and Referencing developed at the US Census Bureau (R)
- VPF - Vector Product Format, a data interchange format (R)
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.
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.
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.
Types of transformations provided include datum shifts, map projections (Mercator, Transverse Mercator, Lambert Conformal Conic, Albers Equal Area Conic, Stereographic, Orthographic) and others.
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.
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.
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.
This is an implementation of the Filter Encoding specification, http://www.opengis.org/docs/02-059.pdf
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.
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.
A working validation Processor is provided as a demo.