mapmap.js - Ein kartographisches API für interaktive thematische Karten

Florian Ledermann

Playlists: 'fossgis2016' videos starting here / audio

Beim Programmieren von Web-Karten bewegt man sich derzeit zwischen zwei Polen:
entweder mittels "Slippy Map" APIs wie z.B. Leaflet eine Hintergrundkarte aus
Bildkacheln laden, oder mittels low-level Visualisierungswerkzeugen wie D3.js komplett
dynamische, vektorbasierte Karten und Diagrammdarstellungen im Browser erstellen. Im
ersten Fall sind der Interaktion mit den Karteninhalten Grenzen gesetzt, da nicht alle
Karteninhalte als geometrische Objekte verfügbar sind, im zweiten Fall ist selbst für
vergleichsweise einfache Kartendarstellungen umfangreicher und komplexerer Code notwendig.
Das an der TU Wien entwickelte API mapmap.js versucht den kartographischen
Visualisierungsprozess in seiner Gesamtheit in einem high-level JavaScript API abzubilden,
wobei jeder Teilaspekt zunächst „einfach funktioniert“, aber bei Bedarf im Detail an die
Notwendigkeiten der jeweiligen Anwendung angepasst werden kann. Die kartographische
Visualisierungspipeline – vom Laden und Zusammenführen von Daten, Metadaten und Geometrie,
über Projektion, Geometriemodifikation und Generalisierung, dem Zuweisen graphischer
Repräsentationen und visueller Attribute bis zur Spezifikation von User-Interaktion – ist
dabei im API abgebildet und erlaubt die Erstellung von interaktiven Karten mit etablierten
Techniken in wenigen Zeilen, aber auch die Anpassung jeden Schrittes der
Visualisierungspipeline im Detail und somit die Entwicklung völlig neuer kartographischer
und hybrider Visualisierungstechniken. Dabei werden komplexe technische Details vom API
abstrahiert, um im Code den kartographischen Prozess klarer werden zu lassen –
Beispielsweise wird das asynchrone Laden von mehreren Ressourcen mittels Promises so
implementiert, das ein sequentieller Programmierstil ohne Callbacks angewendet werden
kann, oder per MapReduce-Modell das Filtern und Zusammenführen von Geometrie und Daten in
modularer Weise unterstützt.
Einige Case Studies zeigen den Einsatz von mapmap.js in der Praxis, u.a. im kürzlich
veröffentlichten „genderATlas“ für Österreich, und runden den Vortrag ab.

Der Vortrag stellt eine vom Renderer unabhängige Methode zur Latinisierung von
OSM-basierten Karten vor. Als Datenquelle dient, wenn möglich, OSM selbst. Alternativ wird
Transkription verwendet, die jedoch viele Schriftsystem-abhängige Probleme birgt, für die
teilweise Lösungen aufgezeigt werden. Ferner wird auf politische Probleme bei der
Lokalisierung von Karten eingegangen.

Download

Embed

Share:

Tags