Drücke die Tasten ◄ ► für weitere Artikel  

Kartograph: aus Geodaten individuelle Karten generieren

Karten-Darstellungen innerhalb einer Website, sei es der Anfahrtsweg zur Kneipe oder die Route im Reise-Blog, werden meist mit Google Maps oder OpenStreetMap umgesetzt. Das Einbinden ist einfach, die Optik aber immer die Gleiche. Die Standard-Darstellung, die Mercator-Projektion, stellt die runde Erde auf einer flachen Ebene dar. Gregor Aisch möchte mit seinem Kartograph dem Betrachterauge Abwechslung bieten.

Kartograph: aus Geodaten individuelle Karten generieren
Eine Italienkarte erzeugt mit KARTOGRAPH
Eine Italienkarte erzeugt mit KARTOGRAPH

Basierend auf den beiden JavaScript-Frameworks jQuery und Raphaël werden SVG-Files (vektorbasierende Grafiken) eingelesen und gerendert. Die SVGs kann man sich dabei entweder aus einem großen Vorlagen-Archiv holen oder auch mit einem Map-Generator erzeugen. Im Visual Editor kann man aus 27 verschiedenen Projektions-Arten wählen und sich so seine Karte nach Belieben erzeugen lassen. Andere Projektionsarten (Übersicht bei Wikimedia) sind etwa die Mollweide-Projektion (zeigt die Erdoberfläche als Ellipse) oder die Robinson-Projektion (wirkt natürlicher, weil sie nur an den Polen leichte Winkelverzerrungen hat). Aus den SVG-Daten wird dann mit Hilfe eines Python-Skripts die SVG-Map erzeugt, die man zum Einbinden in die eigene Website, neben der Bibliothek „kartograph.js“ benötigt. Stylen kann man die Ebenen im eigenen CSS.

Mit dem Karthograph kann man außerdem Daten visualisieren. Dabei werden durch Einfärbung einzelner Bereiche, durch ein Punktemuster oder anhand von Balken zum Beispiel Einwohnerzahlen oder die Kriminalitätsdichte dargestellt. Auch Animationen können damit erzeugt werden, etwa ein sich bewegendes Schiff.

Noch befindet sich der Kartograph in der Entwicklung, deshalb können bisher nur ESRI-Daten (ein Format speziell für Geodaten) eingelesen werden, der Umfang wird aber laut Gregor Aisch noch erweitert. Auf GitHub ist das Projekt zum genaueren Betrachten hinterlegt. Auch wie die Skript-Datei arbeitet ist dokumentiert.

57 Shares bis jetzt – Dankeschön!

Bewerten
VN:F [1.9.22_1171]
5 Antworten
  1. von !i! am 15.05.2012 (23:16Uhr)

    So ganz finde ich den Ansatz von kartograph nicht gelungen, da das Rendering/Streaming von Vektordaten heutzutage noch ziemlich experimentell ist. Es gibt da leider noch keinen Standart, der Geschwindigkeit aber auch Wartbarkeit und Design gut unter einen Hut bringt.
    Dem gegenüber haben doch klassische Rasterkarten sich etabliert. Sie werden auf den Kartenservern gerendert, was dank OpenStreetMap Daten auch sehr günstig erfolgen kann. Stylesprachen gibt es einen ganzen Zoo, genauso wie Renderer und WMS/TMS Server. Auf den Client kommt es dann mit einer von einem Dutzend Webmap Libs und fertig. (siehe http://www.switch2osm.org)

    Klar wäre Vektorstreaming und custom Design/Layout eine prima Sache, in der Praxis ist es aber meiner Meinung nach, für den großflächigen Einsatz bei Highperformance Portalen noch nicht angekommen.

  2. von acsr am 20.05.2012 (18:33Uhr)

    Das Rendering / Streaming von Vektordaten ist – glaube ich – wenig experimentell. Noch nie was von Flash gehört?

    Das Nachladen von Vektordaten und die Verarbeitung im Browser ist hochgradig effektiv, insbesondere wenn die Auflösung steigt. Die unselige Pixel-Kachel-Lieferung ist ja grade der Grund für die lausige Qualität im Interface.

    Man muss hier klar unterscheiden:

    Sobald die initiale Informationsdichte über ein bestimmtes Maß steigt, hat zunächst vielleicht das Pixelmaterial die Nase vorn. Mit steigender Ladezeit dreht sich der Spieß aber schnell um. Sobald man individuell rendert ebenfalls. Unbrauchbare Pixel zu cachen macht keinen Sinn.

    Der Ansatz von Kartograph zielt nicht auf Performanz. Allerdings kann Kartograph all jene Anwendungsfälle abdecken, die die bestehenden Techniken nicht abdecken und auch nicht abdecken wollen. Insbesondere sind mit offenen Frameworks jene Probleme lösbar, an die bisher niemand gedacht hat. z.B. ästhetische! OpenStreetMap Daten und ästhetische Qualität sind zweierlei. Fast alle Karten im Web sehen im Vergleich mit gedruckten oder klassisch gezeichneten Karten lausig aus. Darunter leidet auch die Informationsqualität.

    Ich beschäftige mich seit 2000 mit alternativen Karten Projektionen und der Visualisierung geografischer Daten für Print und Applikationen (nicht primär Web). Kartograph ist definitiv ein großer Wurf für einen einzelnen Entwickler. Da sieht man mal wieder wieviel effektiver die Entwicklung mit Python sein kann. Mal sehen wie sich das "entwickelt".

    Um für einzelne Portale individuelle Karten zu generieren reicht es allemale. Wie diese dann ausgeliefert werden ist Optimierung für die jeweilige Applikation. Man muss die Karten erstmal haben! Kacheln macht für die hier angebotenen Projektionen in der Regel gar keinen Sinn!

  3. von !i! am 24.05.2012 (14:31Uhr)

    Nun vielleicht habe ich mich noch nciht präzise genug ausgedrückt. Was mir im Hinterkopf schwebte, sind grosse Portale wie GC.com oder Foursquare. Da gibt es noch keine Technologie, wie geographische Daten effektiv an dutzende User gestreamt werden kann.

    Mit dem Styling von OSM Karten hast du sicherlich recht. Es gibt aber mit Stemen Design schon sehrschöne Beispiele, die zeigen, dass die jetzigen Werkzeuge noch nicht ausgereizt sind.

  4. von acsr am 24.05.2012 (15:30Uhr)

    Große Portale die geografische Daten streamen wollen, sollten den Use Case analysieren, wenn sie Performanz Probleme haben. Es ist heute insbesondere für Mobile Devices wesentlich effektiver kompakte Nettodaten zu übertragen und erst auf dem Device zu rendern. Dazu helfen Mediaqueries ggf. Devices zu identifizieren die mit fertig gerenderten Daten beliefert müssen. Giesskannenprinzip hilft nicht.

    Apple macht seit Jahren vor, wie sowas läuft. Man kann einen geblurrten Pausenclown liefern und bevor der User wach ist das Ergebnis einfaden. Kommt demnächst WAP für Armbanduhren geht der ganze Schweinezyklus, den ich seit C64 und Amiga kenne, sowieso wieder von vorne los.

    Medienunabhängige Datenhaltung und Auslieferung ist ein nicht triviales System! Es gibt nicht die EINE lösung. Ich würde diese Aufgaben immer auf verschiedene Module auslagern die als Komponenten austauschbar sind. NGINX und Varnish statt Apache und Squid im Frontend sind schon sehr nett. Alles Wege um jeden Part nach vorne zu bringen. Wenn man die Datenlayer mit sinnvollen Z-Koordinaten versieht, statt Kategorien zu vergeben, kann das ebenfalls zu effektiver Nutzung von OpenGL 3D führen etc. . Alles eine Frage der pfiffigen Konzeption.

  5. von acsr am 24.05.2012 (15:44Uhr)

    Sorry, NGINX und Varnish sind natürlich nur Frontend der Server-Dienst Kaskade die die auszuliefernden daten zusammenbaut. Einfach mal die WSGI Pipelines im Python Umfeld anschauen. Die Großen wie Youtube, Google etc. nutzen das ja nicht aus Freude am Spielen.

Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Mehr zum Thema Google Maps
Aprilscherz: Google Maps jetzt mit Mini-Spiel „Pokemon Challenge“
Aprilscherz: Google Maps jetzt mit Mini-Spiel „Pokemon Challenge“

Passend zum 1. April bietet Google dieses Jahr ein Mini-Spiel innerhalb von Google Maps an. Die Nutzer können auf der ganzen Welt Pokemon suchen und diese einfangen. Passend dazu gibt es auch ein... » weiterlesen

Google führt neues Werbeformat für Google Maps ein
Google führt neues Werbeformat für Google Maps ein

Wer in der kommenden Zeit auf Google Maps zugreift, bekommt bei einer Suche die passende Werbung mit angezeigt. Wie Google im eigenen Blog bekannt gibt, soll ein neues „Werbeerlebnis“ für iOS-... » weiterlesen

SEO-Tool „Moz Local“: Mit lokalen Rankings zu neuen Kunden
SEO-Tool „Moz Local“: Mit lokalen Rankings zu neuen Kunden

Wer vor allem lokale Kunden betreut und übers Netz neue Kunden gewinnen will, muss auch in den lokalen Suchergebnissen auftauchen. Ein neues Tool namens Moz Local verspricht dafür die perfekte... » weiterlesen

Kennst Du schon unser t3n Magazin?

t3n-Newsletter
Top-Themen der Woche für Web-Pioniere
Jetzt kostenlos
anmelden
Diesen Hinweis verbergen