GeoAPI provides a set of Java language programming interfaces for geospatial applications.
The interfaces developed by the GeoAPI project include many of the data structures and manipulation methods needed for geographic information system applications. In a series of independent packages, GeoAPI defines a core set of interfaces for metadata handling, for geodetic referencing, projection and conversion, for the handling of georeferenced imagery, for the construction and manipulation of vector geometry and tological data structures, and for the description and use of geospatial 'feature' entities. Beyond this core, GeoAPI further defines interfaces for data access and storage including sophisticated filter queries, and for display.
The GeoAPI interfaces closely follow the abstract model and concrete specifications published collaboratively by the International Organization for Standardization (ISO) in its 19100 series of documents and the Open Geospatial Consortium (OGC) in its abstract and implementation specifications. GeoAPI provides an interpretation and adaptation of these standards to match the expectations of Java programmers. These standards provide GeoAPI with the richness which comes from the expertise of the specification writers. Clients benefit from the potential for inter-operability which comes from using a well defined, standardized data model. Implementors benefit from having a pre-defined set of well considered, formal boundaries to modularize their development work.
The GeoAPI interfaces provide a layer which separates client code, which would call the API, from library code, which implements the API. These interfaces are not an implementation. This follows a similar pattern to the well known JDBC API which provides a standardized interface to databases. Clients can use the JDBC API without concern for the particular implementation which they will use. Various groups have implemented different subsets of GeoAPI, see the list of known implementations for details.
The GeoAPI project consists of a loose collaboration of volunteer programmers and scientists from around the globe motivated by diverse interests. Many work on GeoAPI as part of their own efforts writing client applications which use the API or working on libraries which implement the API.
The project runs a public mailing list for user and developer questions, other issues, and general discussion.
The project is hosted on sourceforge at http://geoapi.sourceforge.net/ which has a mostly unused project page at http://sourceforge.net/projects/geoapi.
GeoAPI has a wiki available at http://docs.codehaus.org/display/GEO/Home.
GeoAPI consists of a series of independent packages, many of which follow one specific ISO/OGC specification document.
The different packages have reached different levels of stablity so that the project has been split into two modules.
The project contains a conformance module which can be run as a test harness to evaluate the correctness of any implementation.
GeoAPI uses the Maven build tool. External projects which also use this tool can integrate GeoAPI into their maven dependencies using one of the repositories listed here.
GeoAPI is hosted on a Subversion repository. The code is also available as a Mercurial clone.
GeoAPI is free software. GeoAPI may be used, modified and redistributed by anyone for any purpose requring only maintaining the copyright and license terms on the source code and derivative files. See the OGC legal page for details.
The copyright to the GeoAPI interfaces is held by the Open Geospatial Consortium.
Because of the close link between GeoAPI and the OGC, a working group has formed within the OGC to formalize GeoAPI as a published OGC standard. The GeoAPI 3.0 Standard Working Group has published its charter.
The working group currently aims to produce the initial 3.0 standard containing only a few, highly tested and stable packages. These include:
Beyond this version of the specification, the working group intends to include the other packages of GeoAPI as those mature and are tested enough to be considered stable and trusted.
The current development version is GeoAPI 2.3-SNAPSHOT. The last unofficial milestone is GeoAPI version 2.1.1. The last released matched by an OGC standard was GeoAPI 2.0.