[Freegis-list] Call for Geo-Spatial Java API

James Macgill pgjm at geography.leeds.ac.uk
Fri Oct 18 09:51:44 CEST 2002


I recently sent a message, the bulk of which is included at the end of this 
message, to key developers of a number of Java based projects suggesting 
the creation of a joint interface only project which would help us 
collaborate.

I received positive comments and support for the idea from people involved 
in deegree (JaGo), JTS, GISToolkit, OpenMap, WBK,  GeoServer and GeoTools 2 
(a project I'm involved in)

In order to continue the discussion and to thrash out issues before setting 
such a project up the suggestion was re-posted to the geoENABLER web site 
with the comment system being used to exchange ideas.

You can see the story and the comments so far at:
http://scoop.geoenabler.org/

We would welcome wider involvement and comments from members of the FreeGIS 
list so if you have anything to add please post comments to that site.  We 
are currently building a list of possible names and talking through some 
licence issues and we hope to set the project up in early November.

Many thanks

James

[The following is from the original email]

This email is to suggest the setting up of a new project to host an 
interface only API for geospatial objects in the Java language.

Some of you may have caught me making comments along these lines before, 
for others of you this will be my first contact with your project on this 
topic.

There is an enormous level of effort being carried out in the Open Source 
community towards building GIS solutions. A good deal of these use Java and 
a good many of them make at least some reference to the OpenGIS Consortium. 
As a result there is an enormous level of duplicated effort with the same 
problems being solved and implemented again and again.

A classic example of this is the number of times I have seen bounding box 
classes or interfaces being defined in peoples code. In an ideal world we 
would have one only, and one for coordinates and geometries and features 
and so on.

It would be nice to think that we could create a single mega project 
involving everyone from all existing projects and with everything being 
done only once. However, I strongly suspect that, in the short to mid term, 
that is impractical.

Each existing project has a slightly different audience, a different code 
style and a different set of goals, all of which are valid and it is 
probably impractical to satisfy all requirements within a single project. 
In addition many of the projects target different Java platforms, depending 
on needs, perhaps the most widespread in browsers (Java 1.1) the most 
accepted (Java 1.3) the most cutting edge (Java 1.4.1) or the most compact 
(J2ME)

As a solution therefore I would like to suggest a new, neutral, project 
which contains only interfaces, individual projects would then be free to 
implement these in what every way they liked, probably by wrapping their 
existing code with the new interfaces.

In an ideal world we could aim to have all of the interfaces adopted within 
the javax. namespace or perhaps as an Apache project under jakarta but both 
of those would take time or organise.

The benefits of this neutral API would start to show up immediately, 
particularly with regard to data sources. Between existing projects there 
are readers or connectors for Oracle SDE, PostGIS, MySQL, GML, Shapefile, 
MIF/MID and many more. For most of these, particularly Shapefile, there are 
multiple implementations. With a common API for the core data structures we 
would be able to use each others loaders within our own projects.

As a start I would suggest interfaces for the following:

Geometries - point, line, polygon, etc. (possibly ISO 19107 based)
Feature - attribute information + geometry + meta data (possibly ISO 19109 
based)
FeatureSource - an object from which features can be obtained, stored. i.e. 
a loader
Style - how to represent a given feature (probably based on the OpenGIS 
Styled Layer Descriptor)
Filter - used to express a query (covers things like within, intersects etc)
Map - Concepts like Layer, Area of Interest, visibility and possibly zoom 
level....
Render - takes a Map definition and produces rendered output.

The above list reflects my raster bias and doesn't cover things like 
coordinate transformation but it is a start.

The further you go down that list the more chance there is for disagreement 
and I feel that to try for all of them at once would be a mistake anyway as 
it would involve too many changes in existing code.

The idea that there should be a single interface for a polygon is not a 
hard sell and I suspect that many of us already use or are considering 
using the excellent Java Topology Suite (JTS) as that base. Moving onto a 
more complex object like Feature would come next and at that point a common 
data source interface would be trivial.
Interfaces for things like styling or rendering would be harder to 
harmonize on and could come much further down the line.

I have some quite detailed ideas on the above, but I do not want this email 
to become too long or detailed yet.

For anyone who doesn't know me I should be clear about what the project I 
am involved with is and how that will have biased the above description.

I am one of the lead developers on GeoTools 2 (GT2) a LGPL project in Java 
for processing geospatial data. It is heavily influenced by the 
specifications that come out of the OpenGIS Consortium so this reflects the 
way I think about Features, Filtering and Style.

GT2 already has an interface only core with separate modules which then 
implement those interfaces, so in part what I am suggesting is a process 
whereby those core interfaces are extracted, modified and placed into an 
external, natural, project. Doing just that however, would not take us much 
further forward and it would not lead to confidence in the process being 
project natural.

To succeed the new project would need to be jointly managed by members of 
multiple projects, it needs to remain focused and not try to take on too 
much. It needs to be a resource that projects can use as little or as much 
of as they like and still see some benefit.

I would very much welcome comments on this proposal from project leads (and 
anyone else for that matter)...

[If you have any thought on the above please use the comments system on the 
geoEnabler web site to respond http://scoop.geoenabler.org/]






More information about the Freegis-list mailing list

This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)