Geodaten auf Karte einzeichnen


Wenn man Daten visualisieren will, geht es sehr oft darum Geodaten zu verarbeiten und zu modifizieren.

Die Geodaten holen wir uns über die YQL aus Placemarker. Die Koordinaten liegen dann in Form von 2 floats (Breiten– und Längengrad) vor.

Beim Zeichnen der Koordinaten auf einer (Welt-) Karte ergibt sich zunächst das Problem, dass man eine Kugeloberfläche nicht verzerrungsfrei auf einer ebenen Fläche abbilden kann. Es gibt sehr viele verschiedene Möglichkeiten, wie man mit dem Problem umgehen kann. Einen guten Überblick liefert diese Seite.

Ich habe mich für die (meiner Meinung nach) einfachsten Möglichkeit der Plate Carrée („plane square“ oder Plattkarte) Projektion entschieden.

Hier kann man die Längen- und Breitenkoordinaten direkt in x- und y Koordinaten umrechnen.

float x = map(longitude, -180, 180, 0, width);
float y = map(latitude, 90, -90, 0, height);
Mehr Info zur „Plattkarte“ gibt es auf Wikipedia.

Für diese Projekton hat Till Nagel eine eigene Placemarker-Klasse geschrieben, die ich für mein Projekt leicht verändert habe.

class PlaceMarker {

String name;
float lat;
float lng;

PlaceMarker(String name, float lat, float lng) {
this.name = name;
this.lat = lat;
this.lng = lng;
}

float getX() {
return map(lng, -180, 180, 0, width);
}

float getY() {
return map(lat, 90, -90, 0, height);
}

void display(int results) {

// Equirectangular projection
float x = map(lng, -180, 180, 0, width);
float y = map(lat, 90, -90, 0, height);
}

String toString() {
return name + " (" + lat + ", " + lng + ")";
}
}

Advertisements

Ein Kommentar

  1. Pingback: Processing – Über dieses Weblog « processing – tutorial

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: