Untersuchung der Geo-APIs


Java Topology Suite

Die Java Topology Suite (JTS, offizieller Name: JTS Topology Suite) ist eine Java-Bibliothek zur Repräsentation und Verarbeitung von Geometrien. Vom OSGeo unabhängiges Software-Projekt. Sie ist auf dem Gebiet die bedeutendste API und wird in vielen Programmen und anderen Bibliotheken verwendet: JUMP, uDIG, gvSIG, GeoTools, Hibernate Spatial, JAITools. Ebenfalls weit verbreitet ist die C++-Portierung GEOS (Geometry Engine - Open Source). Diese wird u.a. bei PostGIS, MapServer und GDAL/OGR verwendet.

Das Geometriemodell basiert auf dem SFA. Es lassen sich nur zweidimensionale Geometrien darstellen. Zusätzlich kann eine Z-Koordinate mit abgespeichert werden. Diese hat aber keinen Einfluss auf die Berechnungen. Somit sind 2,5D-Geometrien möglich. Die Geometrieobjekte besitzen weitestgehend alle Methoden des SFA.

Die Erstellung von Geometrien ist aus den Teilgeometrien über die Schnittstellen WKT, WKB, GML und Java2D Shapes möglich. Bis auf wenige Ausnahmen ist das Lesen und Schreiben von Geodaten aus Datenquellen nicht möglich.

Daneben bietet JTS eine Reihe weiterer geometrischer Operationen und Algorithmen:

 - Delaunay-Triangulation
 - Voronoi-Diagramm
 - Linienreferenzierung
 - Geometrie-Vereinfachung (Douglas-Peucker-Algorithmus)
 - Geometrische Indices (Quadtree, R-Tree)

Link zur offiziellen Homepage

PROJ

PROJ (PROJ.4) ist eine Bibliothek zur Definition von Koordinatenreferenzsystemen und zur Durchführung von Koordinatentransformationen. Sie ist Teil des MetaCRS Projekt der OSGeo. Die API definiert die PROJ-Codierung eines CRS. PROJ ist selber in C programmiert aber über Portierungen und Bindings ist die Nutzung möglich.

Proj4J ist eine Java-Portierung von PROJ.4. Sie stellt eine Weiterentwicklung der Java Map Projektion Library dar. Es ist ebenfalls Teil des MetaCRS-Projektes. Die Definition eines CRS erfolgt über EPSG- und PROJ-Codierung. WKT wird bisher nicht unterstützt. Es sind nur punktweise Transformation möglich.

Link zur offiziellen Homepage

GDAL/OGR

GDAL und OGR stellen eine gemeinsame API zur Formattransformation von Raster- bzw. Vektordaten dar. Sie werden von Frank Warmerdam entwickelt und sind heute ein OSGeo-Projekt. GDAL/OGR wird in C und C++ programmiert. Die Verwendung ist aber über ein Java-Binding möglich. Dazu muss aber die GDAL/OGR-API installiert sein. GDAL und OGR stellen jeweils ein abstraktes Datenmodell bereit. Über eine einheitliche Schnittstelle erfolgt der Datenzugriff auf jedes Datenformat identisch.

GDAL OGR
Formate GeoTiff, WLD-Images, WMS, WCS, Geodatenbanken PostGIS (PostGIS Raster), Oracle Spatial (GeoRaster) Shapefile, GML, WFS und WFS-T, PostGIS, Oracle Spatial, MS SQL Server Spatial
Datenmodell Es wird immer ein konkretes Raster eingelesen, Rasterband besteht aus einem oder mehreren Rasterbändern Datenquelle wird als Layer mit Features dargestellt, Feature kann Geometrie enthalten, Geometriemodell nach SFA
Histogramm (Statistik)
Koordinatentransformation
Skalierung
Ausschneiden
Komplexe Analysen und Bearbeitungsmethoden fehlen
Methoden entsprechend SFA für einzelne Geometrien
für die Durchführung der geometrischen Berechnungen wird GEOS verwendet
Keine weiterführenden Operationen
Koordinatentransformation ganzer Geometrien möglich
Komplexe Operationen zwischen zwei Layern befinden sich in der Entwicklung
Schnittstellen Schnittstelle zu Java BufferedImage fehlt, nur zu einzelne Bänder und deren Grauwerte abfragbar Schnittstellen für einzelne Geometrien sind WKT, WKB, GML, einige weitere, jedoch keine Java2D Shapes
Weiteres Konvertierung zwischen Vektor und Raster im Zusammenspiel mit OGR Filterung der Features ist mit SQL möglich

Die Definition für CRS erfolgt für beide Teilapis identisch. Dazu wird die PROJ.4 API verwendet. Als Schnittstellen sind EPSG-CODE, PROJ-Code, WKT und XML (GML) möglich.

Link zur offiziellen Homepage

GeoTools

GeoTools ist eine modular aufgebaute Java-Bibliothek. Als Grundlage werden die Java-Interfaces der GeoAPI verwendet. Sie bietet die Arbeit mit Vektor- und Rasterdaten. Die Standardformate Shapefile, WFS, PostGIS, Oracle Spatial, GeoTiff, WLD-Images und WMS sind möglich. Vektordaten werden als Layer eingelesen. Die Features können beliebig viele geometrische Attribute besitzen. Für die Darstellung des Geometriemodells und die Berechnungen wird die JTS verwendet. Über Filter Encoding und CQL ist eine Filterung in den Daten möglich.

Einige komplexere Berechnungen und Transformationen sind ebenfalls durchführbar. Entsprechend der SLD-Spezifikation können komplexe Styles erzeugt werden. Über einen Renderer können die Geodaten mit den Styles gezeichnet werden. GeoTools beinhaltet auch ein Modul mit fertigen Swing-Oberflächen, sodass eine einfache Anwendung leicht erzeugt werden kann.

Link zur offiziellen Homepage

Hibernate Spatial

Hibernate Spatial ist eine Erweiterung für das ORM Framework Hibernate und dient zum Mapping von Geodaten auf ein Datenbankschema. Für die Darstellung von Geometrien wird die JTS verwendet.

Link zur offiziellen Homepage

JGrasstools

JGrasstools ist eine Bibliothek für die Durchführung von komplexen Analysen. Sie beinhaltet speziell Rasteranalysen für DGM-Daten. Als IO-Schnittstelle wird GeoTools verwendet.

Link zur offiziellen Homepage

Sextante

Sextante ist ein Framework für die Durchführung von komplexen Raster- und Vektoranalysen und kann ebenfalls als Bibliothek verwendet werden. Der IO erfolgt über eine Anbindung an GeoTools.

Link zur offiziellen Homepage