Introduction -- OpenGIS Simple Features Access (SFA, also called ISO 19125) defines a
standard set of geometry types along with SQL functions on those types. An increasing
number of relational database management systems (RDMBS) implement this OGC
specification. Geographic information systems (GIS) that use such an open spatial
database as datastore take advantage of both the spatial capabilities and the
seamless integration with non-spatial data in the RDBMS.
Sun's JDO specification provides a technology for transparently persisting Java
objects (POJOs). This standardized, object-oriented API promises high usability and
performance. For practical reasons the specification only demands mandatory support
for a very limited set of basic Java types, because a persistence solution can never
know how to persist all possible types. As a result of this, support for spatial data
types in current JDO implementations is sparse. However, most implementations provide
plug-in mechanisms to add support for user defined data types.
JPOX-Spatial extends JPOX, which is an open source and fully compliant JDO
implementation that was chosen by SUN as reference implementation for the JDO 2.0
specification. JPOX allows application developers to define their own types.
Developers may also extend the query language with user defined methods.
Results -- JPOX-Spatial allows the use of JPOX as persistence layer for geospatial
applications in an environment that supports the OGC SFA specification. It defines
type mappings to let JPOX know how to persist the Java geometry types from the JTS
topology suite as well as those from the PostGIS project. On the datastore side,
PostgreSQL with PostGIS or MySQL may be used as spatial database. The JDO query
language (JDOQL) was extended with over forty functions to query spatial data. These
functions follow the definitions in OGC SFA and are translated into appropriate SQL
statements, provided the underlying database system implements the functions and the
geometry object model accordingly.
Future Work -- There is still a lot of room for improvement in JPOX-Spatial. A major
task will be to implement support for additional RDBMSs (that conform to OGC SFA).
Work is already under way to implement support for Oracle and IBM DB2, because to
attract a broad user base it is crucial to support as many RDBMSs as possible.
Another task will be to analyse more open source GIS projects, like GeoTools or
OpenMap, and evaluate whether a JPOX mapping for their geometry models is possible