19 August 2009

Höhenlinien als Layer über OSM

Ich hab' mich neulich mal wieder ein bisschen mit Karten beschäftigt. Dieses mal ging es eigentlich darum, wie man Höhenlinien erstellt. Um mal ein bisschen in das Thema reinzuschnuppern habe ich mir die SRTM-Daten auf der unübersichtlichen Seite des CGIAR gezogen - natürlich für die Kachel, in der Trier liegt. (Zwischendurch scheinen deren Server ein wenig überlastet gewesen zu sein, bei mir klappte der Download erst im dritten Anlauf, bei anderen wohl überhaupt nicht - aber, naja, 'geschenkter Gaul' und so...)
Ziel war es nun, aus diesen Daten für einen Bereich um Trier Höhenlinien zu erzeugen und diese dann als Layer mit OpenLayers über der OpenStreetMap anzuzeigen. Hierzu kann man entweder das Programm Srtm2Osm oder aber (wie ich) die entsprechenden perl-scripte benutzen. Mit extractdata.pl zog ich zuerst einen Ausschnitt aus den Daten (ca. 'von Sirzenich bis Irsch') und erstellte daraus dann mit mkcntr.pl die OSM-Datei mit den Höhenlinien. Wie diese Höhenlinien dann als Layer über der OpenStreetMap aussehen, kann man sich hier ansehen - wie die OSM-Datei als Layer verwendet wird, steht im Quelltext.
Wählt man in meinem kleinen Beispiel die CycleMap (die schon die Höhenlinien beinhaltet) als BaseLayer sieht man jedoch, daß meine Höhenlinien (rot) nach Nordwesten verschoben sind (siehe Bild). Ich weiß nicht, woran das liegt, irgendwo muß sich ein Fehler eingeschlichen haben.
Das Ergenis ist für das bischen Bastelei erstmal zufriedenstellend, man erkennt an den Höhenlinien z.B. sehr schon Aveler- und Butzbachtal. Leider steh ich dank mangelnder JavaScript-Kenntnisse mit OpenLayers und dessen Eventhandlern noch auf dem Kriegsfuß, ansonsten könnte ich damit sicher noch viele schöne Spielereien anstellen.
Aber noch mal kurz zurück zu der Frage, wie man Höhenlinien erstellt bzw. errechnet - diese bleibt für mich nämlich eigentlich erstmal ungeklärt, da mkcntr.pl auch nur den Contourplot von gnuplot benutzt. Dies entspricht auch nur meiner ursprünglichen Idee, selbigen von R zu benutzen.

(Bild: Screenshotausschnitt einer OSM-Karte - CC-By-SA)

Labels: , , , ,