Geodaten und Drupal 7

Überblick über die Verwaltung von Geodaten in Drupal.

Dieser Artikel gibt einen Überblick über die Verwaltung von Geodaten in Drupal und beschreibt die Komponenten einer möglichen Umsetzung. Ein Blick auf die Liste von über 100 Drupal-Modulen in der Kategorie "Location" zeigt, wie verbreitet die Anforderung ist, Geodaten in Drupal zu nutzen. Allerdings haben sich mit der Zeit, insbesondere durch die Entwicklung der Fields API, die Rahmenbedingungen grundlegend geändert. Im Folgenden wird die Verwaltung von Geodaten in drei Abschnitten beschrieben, wie sie auch als grüne Boxen in der Grafik dargestellt sind.Geodaten und Drupal

Geodaten speichern mit PostGIS

Grundsätzlich muss unterschieden werden, ob Geodaten mit Hilfe von spezifischen Geodatentypen oder als Zahlen bzw. einfacher Text (WKT) in der Datenbank gespeichert werden. In die letzten Kategorien fallen Module wie Geolocation für Positionsdaten und Geofield, die bereits recht ausgegreift sind und aktiv entwickelt werden. Die Verwendung von spezifischen Geodatentypen wurde hingegen bisher nur vom Geo Modul realisiert, dessen Entwicklung allerdings seit einem Jahr brach liegt und daher noch nicht für Drupal 7 verfügbar ist. 

Wir haben basierend auf der Fields API ein Drupal Modul entwickelt, welches den PostGIS Geodatentyp geometry als Field für Content Types zugänglich macht. Zusammen mit dem Drupal Modul für OpenLayers kann der Benutzer der Drupal-Website damit auf einfache Weise Geodaten bearbeiten, die in einer PostGIS Datenbank gespeichert werden. Das Modul ist fürs Erste als Sandbox Projekt verfügbar.

Geodaten lesen mit GeoServer

Der übliche Weg, flexibel Daten mit Drupal abzufragen und darzustellen, führt über das Views Modul. Allerdings stößt man hier bei umfangreicheren Geodaten schnell an Grenzen und benötigt angesichts komplexer Geodatenformate viel Entwicklungsarbeit. Aus diesen Gründen haben wir uns an dieser Stelle entschieden, die Geodaten mit Hilfe von GeoServer aus der PostGIS Datenbank zu lesen. Mit den seit Version 2.1 verfügbaren SQL Views können Daten flexibel abgefragt und mit anderen, von Drupal verwalteten Daten kombiniert werden. In Zusammenspiel mit dem GeoWebCache stehen dem Benutzer die Daten in zahlreichen Formaten bei gleichzeitig hoher Performance zur Verfügung.

Bisher verwenden wir lediglich die REST API des GeoWebCache, um Tiles bei geänderten Daten neu zu generieren. Hier bietet die RESTful Configuration noch viel Potenzial, um aufwendige Konfigurationsschritte zu automatisieren.

Geodaten anzeigen und bearbeiten mit OpenLayers

Am Ende soll der Benutzer die Geodaten natürlich auch anzeigen und bearbeiten können. Das OpenLayers Modul bietet für diese Aufgabe umfangreiche Konfigurationsmöglichkeiten, um Karten mit unterschiedlichen Ebenen und Funktionen zu erstellen. Die Karten lassen sich anschließend beispielsweise von dem oben beschriebenen PostGIS Modul oder von eigenen Themes einbinden. Außerdem können mit sogenannten Behaviors eigene Kartenfunktionen ergänzt werden, um etwa komplexe Editiermöglichkeiten von Geodaten im Browser zu implementieren.