db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Yuill" <pyu...@objectix.com.au>
Subject Spatial Functionality
Date Sun, 04 May 2008 02:41:17 GMT

I responded to a recent post on the derby-user list on this topic. I am
working on a project to add spatial functionality to Derby through user
created tables and procedures. I am interested in taking the next step
and looking at incorporating spatial functionality in Derby.

The biggest issue I see is one of licensing. The concept of 'spatial
datatypes' might seem simple enough, but there is no real point without
spatial functions to go with them. The Open Geospatial Consortium (OGC)
http://www.opengeospatial.org published a standard set of these, and
there are a handful of high grade open source implementations. There is
a huge amount of work in these implementations, and they rely on very
specialized expertise. In the Java world there is just one that has
stood the test of time, the JTS Topology Suite
http://sourceforge.net/projects/jts-topo-suite/ . However JTS is LGPL,
and the prospect of re-engineering the functionality just to get an
Apache 2.0 license is mind boggling. Even worse, two of the OGC spatial
filters (Distance Within and Beyond) require Coordinate Reference System
(CRS) transformation if the database features are stored in a geographic
CRS. The obvious choice for that functionality is Geotools
http://geotools.codehaus.org/ , again LGPL. The Apache web site
indicates there are unresolved questions about the compatibility of
Apache 2.0 and GPL. Does anyone have more information on the status of

One alternative is to take the route that MySQL went. Leave out all the
secondary filtering and just support Minimum Bounding Rectangle (MBR)
queries. However the same question keeps surfacing on the MySQL spatial
list with monotonous regularity: when will MySQL get 'real' spatial
functionality. Personally I think a user-space solution is preferable to
a half-way solution like MySQL.


View raw message