Vorlesung 10: (Web-) Mapping
Maurits Cornelis Escher lebt...
Motto
»Eine gute Karte erzählt eine Menge kleiner Notlügen: Sie unterdrückt die Wahrheit, um den Benutzer das sehen zu lassen, was er sehen muß.«
- Mark Monmonier, How to lie with Maps, Chicago 1991
Warum Mapping? (1)
(Land-) Karten erfüllen mindestens drei Zwecke:
- Sie zeigen dem Leser, wo er ist.
- Sie zeigen dem Leser, wo er hingehen kann.
- Sie geben dem Leser einen Überblick über seine Umgebung.
Warum Mapping? (2)
Warum Mapping? (3)
Karten im Web erfüllen meist den letzten Zweck:
- Sie geben dem Leser einen Überblick über seine Umgebung.
- D.h. sie visualisieren Daten und Informationen, aber…
Warum Mapping? (4)
- …mit zunehmender Vernetzung mobiler Clients wird auch der Navigationsaspekt von Webkarten (wieder) in den Vordergrund rücken.
Visualisierung
(Web-) Mapping (Visualisierung) besteht im wesentlichen aus folgenden Aufgaben:
- Beobachtungen quantifizieren (z.B. anhand von Satellitenbildern das Ausmaß von Waldschäden feststellen)
- Bobachtungen lokalisieren (z.B. wo sind die irakischen Waffenfabriken?)
- Beobachtungen und/oder Lokalisierungen visualisieren (z.B. Einfärbungen, Overlays)
Requirements (1)
Um geographische Daten im Web zu präsentieren sind mindestens folgende Komponenten erforderlich:
- ein Webserver (Apache oder ähnliches, kann auch gehostet sein)
- ein Web-Mapping-Server
- Geodaten
- geographische Metadaten
Web-Mapping-Server, Auswahl
Web-Mapping-Server, Auswahl (2)
- Google Maps, Yahoo! Maps etc. (Satellitenbilder und Karten, kommerziell)
- SVG-Anwendungen (nicht wirklich Server, aber…)
Web-GIS Desktop Clients
- Google Earth (kommerziell, kann 3D)
- NASA World Wind (Open Source, ständig aktuelle Satellitenbilder, zur Zeit Windows only, kann ebenfalls 3D)
- uDig, das user-friendly Desktop Internet GIS (basiert auf dem Eclipse-Framework und unterstützt die OGC-Protokolle WMS und WFS)
MapServer (Beispiel 1)
MapServer (Beispiel 2)
MapServer (Übersicht)
- Extrem konfigurierbar
- Arbeitet mit vielen (Open Source) GIS-Tools zusammen
- Qualität der Karten ist von der Qualität der Geodaten abhängig (keine eigenen Geodaten/Karten)
GeoServer (Beispiel 1)
GeoServer (Beispiel 2)
OpenArialMap (OAM)
Die Karten des OpenStreetMap-Projekts (siehe nächste Folie) können bei Bedarf eingeblendet werden.
GeoServer (Übersicht)
- JSP-basiert (läuft entweder hinter einem »eigenen« Server oder z.B. hinter einem Tomcat
- standardkonform – erfüllt die Open Geospatial Consortium (OGC) Spezifikationen Web Map Service (WMS 1.1.1), Web Feature Service (WFS 1.0) und Web Coverage Service (WCS)
- Beispiel für ein verteilter, selbstorganisierter, RPC-basierter (eher REST) Web-Service
Google Maps
Google Maps (2)
Google Maps (Übersicht)
- Das gleiche exzellente Karten- und Bildmaterial wie bei Google Earth
- Einbinden in die eigene Webseite möglich
- Konfigurier- und erweiterbar via JavaScript-API und KML-Dateien
Google Maps und die Fußgänger
Google Maps und Video
Google Maps und »Meine Karten«
Google Maps und Overlays
Mehr hier…
Google Maps Mashup
Yahoo! Maps
Das neue, Flash-basierte Yahoo! Maps mit FLEX-GUI:
Yahoo! Maps Karten
Yahoo! Maps Satellitenbilder
Yahoo! Maps (Beispiel)
TagMaps/WorldExplorer ist ein Yahoo! Maps-/flickr-Mashup, das es auch in einer Version zum Einbetten in die eigene Webseite gibt.
Yahoo! Maps (Übersicht)
- Mittlerweile gutes Kartenmaterial für Europa, Bilder reichen (in Europa) noch lange nicht an Google Maps heran.
- In die eigene Webseiten einbauen und erweitern via Flash- und REST-API
Yahoo! MapMixer
Mit wenigen Klicks zu eigenen Overlays (auch zum Einbinden in die eigene Seite):
GoYellow
Berlin wird gelb:
GoYellow (Übersicht)
- Gutes bis exzellentes Karten- und Bildmaterial für Deutschland (stammt aus den gleichen Quellen wie das Material bei Google)
- (Noch) keine API, dh. Einbinden in die eigene Webseite nicht möglich
- Aber viele Features lassen sich durch Manipulation der URL anzeigen
OpenStreetMap
OpenStreetMap (2)
Im Vergleich: Der Alexanderplatz bei Google Maps:
OpenStreetMap (3)
Der Quellcode
<div id="map" style="width:460px; height:400px;"> <script type="text/javascript" src="http://www.deinserver.de/ol/OpenLayers.js"></script> <script type="text/javascript" src="http://openstreetmap.org/openlayers/OpenStreetMap.js"> </script> <script type="text/javascript"> function Lon2Merc(lon) { return 20037508.34*lon/180; } function Lat2Merc(lat) { var PI = 3.14159265358979323846; lat = Math.log(Math.tan((90 + lat)*PI/360))/(PI/180); return 20037508.34*lat/180; } </script> <script type="text/javascript"> var lon = 13.426837921142578; var lat = 52.48142115832729; var zoom = 13; var map = new OpenLayers.Map("map", { controls: [ new OpenLayers.Control.KeyboardDefaults(), new OpenLayers.Control.MouseDefaults(), new OpenLayers.Control.LayerSwitcher(), new OpenLayers.Control.PanZoomBar()], maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34), numZoomLevels: 18, maxResolution: 156543, units: 'meters', projection: "EPSG:41001"} ); var mapnik_layer = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); var tah_layer = new OpenLayers.Layer.OSM.Osmarender("Tiles@Home"); map.addLayers([mapnik_layer, tah_layer]); var x = Lon2Merc(lon); var y = Lat2Merc(lat); map.setCenter(new OpenLayers.LonLat(x, y), zoom); </script> </div>
OpenStreetMap und SVG
Mehr hier…
Web-Mapping mit SVG
Google Earth
Google Earth (Beispiel 1)
Aufgrund der politischen Situation sind weite Teile des Iraks mit exzellenten Luftbildern für Google Earth erschlossen…
Google Earth (Beispiel 2)
Google Earth (Beispiel 3)
Dabei kann man – im Gegensatz zu Google Maps, aber ähnlich wie im Yahoo! MapMixer – die Transparenz stufenlos regeln:
Google Earth (Beispiel 4)
Mit Hilfe von SketchUp erstelltes 3D-Modell, eingebunden in Google Earth:
Google Earth (Beispiel 5)
Google Earth (Beispiel 6)
Berlin in 3D (1)
Berlin in 3D (2)
Google Earth (Übersicht [+])
- Dank Googles Marktmacht Quasi-Standard
- Umfangreiche (Meta-) Datenbank
- Via KML leicht erweiterbar
Google Earth (Übersicht [+])
Google Earth (Übersicht [-])
- Import von GPS-Daten erst ab Plus-Version ohne Zusatztool
- Ressourcenhungrig
- Zugang zu WMS-Diensten nur über Zusatz-Scripte
- Kommerziell (Plus-, Pro- und Enterpriseversionen kosten Geld)
Google Earth (Übersicht [-])
- Und so richtig scheint Google auch noch nicht zu wissen, woraus die Enterprise-Version besteht:
- Preis für F+E: ca. 200.000 €
- Lieferumfang: unklar
NASA World Wind
NASA World Wind (Beispiel 1)
NASA World Wind (Beispiel 2)
NASA World Wind (Beispiel 3)
NASA World Wind (Übersicht 1)
- Große Menge von Geodaten der NASA (Ortsnamen nur in Englisch) [+]
- Kann direkt auf WMS-Dienste (»Web Mapping Service«) Dienste zugreifen [+]
- Scriptfähig (XML-Scripte und Add Ons via API) [+]
- Vielzahl von Add Ons (eine Reihe davon bietet die NASA selber an) [+]
NASA World Wind (Übersicht 2)
- Zur Zeit Karten für Erde, Mond und Mars vorhanden [+]
- Projekt, Dokumentation etc. teilweise etwas chaotisch [-]
- Träge reagierender Server der NASA [-]
NASA World Wind (Übersicht 3)
- Zur Zeit Windows Only [-] — eine Java-Version existiert allerdings schon in Anfängen
- Zukunft? (NASA hat eine Kooperation mit Google vereinbart) [?]
NASA World Wind in Java
uDig
uDig: Google Earth selbstgemacht
uDig (Übersicht)
- standardbasiert: »versteht« die OGC Webservices Web Map Service (WMS) und Web Feature Service (WFS)
- kann auch via Webservice Rasterdaten einlesen, wie zum Beispiel die Blue Marble- oder die Landsat-Karten der NASA
- kann Desktop- und Webdaten mischen
- in Java geschrieben, baut auf das Eclipse-Framework auf
- Internationalisierung?
Werkzeuge
Übersicht:
- (Open Source) GIS-Tools
- Google-Tools (JavaScript-API und KML)
Warum Tools? (1)
Warum Tools? (2)
Projektionen
(Ideale) Anforderungen an eine Projektion:
- Winkeltreue (See- und Luftkarten)
- Flächentreue (Topographische Karten)
- Längentreue (Entfernungsmessung)
Mindestens eine von diesen Anforderungen muß bei einer Projektion von einer Kugel (einem Spheroid, einem Ellipsoid) auf eine Ebene verletzt werden.
Projektionen und Koordinatensysteme
Es gibt Unmengen von Kombinationen von Projektionen und Koordinatensystemen. Die gängigsten sind:
- NAD27 (Clarke 1886 Ellipsoid)
- NAD83 (GRS80 Ellipsoid) – Google Earth, Google Maps (EPSG:4269)
- NAD83 (UTM) (Universal Transverse Mercator Projektions)
NAD: North American Datum, EPSG: European Petroleum Survey Group
Rasterdaten und Vektordaten
- GIS-Daten liegen in der Regel als Vektordaten vor, dh. als eine Sammlung von Koordinaten und Bezeichnungen
- Diese müssen oft mit Rasterdaten (Satellitenbilder und/oder Luftaufnahmen etc.) »gemapped« werden.
(Open Source) GIS-Tools
(Open Source) GIS-Tools
Übersicht:
- GDAL/OGR
- OpenEV und Landserf
- GRASS und Quantum GIS
- OpenJUMP
- PostGIS
GDAL
Die »Geospatial Data Abstraction Library« ist eine Open Source Bibliothek für die Behandlung und Konvertierung geographischer Rasterformate.
- Unterstützung von über 40 unterschiedlichen Formaten
- Schnittstellen für C(++) und Python, Wrapper für Perl, Java etc.
- Kommandozeilen-Tools und -Utilities
OGR
Die OGR Simple Feature Library ist das Vektordaten-Pendant zu GDAL (und heute auch Teil der GDAL-Bibliothek):
- Unterstützung für mehr als 16 verschiedene Vektorformate
- Schnittstellen für C(++) und Bindings für Python, Wrapper für Perl, Java etc. in Vorbereitung
- Kommandozeilen-Tools und -Utilities
OpenEV
OpenEV ist eine Software-Bibliothek, um geographische Daten zu analysieren und zu visualisieren
- Bis auf einen Kernel in Python programmiert, kann mit Python erweitert werden; interne Scriptsprache ist ebenfalls Python [+]
- Hervorragendes Frontend für GDAL/OGR-Daten [+]
- Erhältlich für Windows, Linux, Solaris und SGI Irix (kein Mac OS X!) [-]
- Weiterentwicklung zur Zeit schleppend [-]
OpenEV (Beispiel)
Landserf
Landserf (Übersicht)
- Landserf (frei wie Freibier) ist ein in Java geschriebenes »vollständiges« GIS für Linux, Windows, Mac OS X und alles andere, auf dem ein Java Runtime Environment läuft.
- Es beinhaltet einen großen Teil der Funktionen von GDAL/OGR und OpenEV, kann aber bei weitem nicht so viele unterschiedliche Formate bearbeiten.
OpenMap
GRASS? Oops!
Jetzt aber: GRASS!
Quantum GIS (QGIS) mit GRASS-Toolbox:
GRASS (Übersicht 1)
- GRASS (Geographic Resources Analysis Support System) ist eine umfangreiche Sammlung kleiner Kommandozeilen-Tools für geographische Raster- und Vektordaten
- Gibt es für Windows, Linux, Mac OS X und diverse Unixe
GRASS (Übersicht 2)
- Durch den modularen Aufbau (GRASS GIS ist eine unixtypische Sammlung vieler kleiner Programme) lassen sich einzelne Elemente einfach mit eigenen Applikationen unter einer Benutzeroberfläche verbinden.
GRASS Screenshot
Quantum GIS (QGIS)
Quantum GIS (Übersicht)
- Freier Geodatenviewer mit zahlreichen GIS-Funktionalitäten.
- Er kann unter GNU/Linux, Mac OS X und Windows eingesetzt werden.
- Schnittstelle zu GRASS GIS und PostGIS
- (Interne) Skriptsprache: Python
OpenJUMP
OpenJUMP: Yet Another Desktop GIS
OpenJUMP (Übersicht)
- Java-basiertes Vektor-GIS, das auch Rasterdaten lesen und als Layer darstellen kann
- Unterstützt die OGC-Standards GML, WMS und WFS
- Internationalisierung (z.B. Chinesische Zeichensätze?)
- SVG-Export
PostGIS
- PostGIS ist eine Erweiterung zur Speicherung und Verwaltung von Geodaten in der Open Source Datenbank PostgreSQL.
MySQL
- kann mittlerweile auch mit geospatialen Daten und Funktionen umgehen, Funktionen sind aber bei weitem noch nicht so vollständig wie in PostgrSQL/PostGIS
Tools: Fazit
Um vernünftig mit Geodaten arbeiten zu können, benötigt man (meine Empfehlung):
- GDAL/OGR (für die Konvertierung der Geodaten)
- GRASS und Quantum-GIS (für die Kartenerstellung)
- PostGIS (falls eine Datenbank benötigt wird)
Tools: Fazit (2)
Falls ein Server benötigt wird:
- MapServer (falls man alle Daten auf dem eigenen Server vorrätig hat)
- GeoServer (falls man geographische Webservices in Anspruch nimmt)
Arbeiten mit Google Earth und Google Maps
- Anatomie eines KML-Files
- Google Maps JavaScript API
Anatomie eines KML-Files (1)
Anatomie eines KML-Files (2)
Googles KML...
- ist eine proprietäre Erweiterung der GML (Geography Markup Language)
- Es ist möglich, Punkte, Linien, Polygone und Bilder zu definieren. Zugleich lassen sich bestimmte Parameter spezifizieren, wie zum Beispiel Betrachtungswinkel und -entfernung.
- Das Format KMZ ist eine komprimierte KML-Datei im Zip-Format. Sie kann von Google Earth direkt eingelesen werden.
Google Maps...
Google Maps (Header)
… bauen wir im Header der Seite folgenden Code ein:
Und den API-Key nicht vergessen zu besorgen. ;o)
Google Maps (Body)
Google Maps (Overlays 1)
Google Maps (Overlays 2)
…auch kollaborativ erstellte (Screenshot Wikimapia):
Suchen und finden (1)
Suchen und finden (2)
Navigation mit Google
Google Sky
Fragen?
Danke!
- Danke für Ihre Aufmerksamkeit!









