Block > OpenStreetMap und Reiserouten
4 min (822 Wörter, 4676 Zeichen)
Hinweis
Dieser Eintrag ist älter als 3 Jahre und entspricht vermutlich nicht mehr dem neuesten Stand der Technik/Realität.
Eigentlich wollte ich nur unsere Reiseroute eintragen. Mit verschiedenen Farben fuer verschiedene Fortbewegungsarten. So wie die Routenanzeige bei Google Maps. Das es so schwierig werden wuerde, haette ich nicht gedacht.
Zuerst hab ich mir also versucht, die Daten von Irland von OSM runterzuladen. Das war ja schon so eine Sache. Exportieren kann man naemlich so grosse Gebiete nur als PNG, nicht aber als XML-Data. Irgendwie bin ich dann durch Suche auf eine API gestossen, der man einfach die Laengen- und Breitengrade mitgibt, in der das gewuenschte Objekt liegt. Und das an die URL haengt. Bei mir also:
wget \
http://xapi.openstreetmap.org/api/0.6/map?bbox=-12.38,50.66,-4.35,55.03 \
-O ireland.osm
Der Download dauerte dann etwa 3 Stunden und brachte 467 MiB mit sich.
Nun versuchte ich die Datei mal mit Josm zu oeffnen. Damit kann man ja die Daten editieren. Aber nach kurzer Zeit ein Fehler: in zeile 7758570, way 59174155 fehlerhaft. (genauer Fehler weiss ich nicht mehr). Ok, hab ich mir also mal angucken wollen. Also hab ich mir mal 20 Zeilen ab Zeile 7758560 anzeigen lassen:
sed -ne '7758560,7758580' ireland.osm
Cool. Da fehlten alle Angaben. Mit vim einfuegen dauert zu lange, also mal zu den Boardmitteln (coreutils) gegriffen (splittet die Datei in 10MB Parts und nennt sie irlandaa, irlandab, usw.):
split -b 10M ireland.osm irland
Ok, nun 59174155 gesucht:
# da es ja im hinteren Teil liegen muss, da die Datei insgesamt nur
# etwa 8 Millionen Zeilen hat
grep 59174155 irlandb*
Ok gefunden, also mit vim irlandbs
einfach irgendwas
eingefuegt und wieder zusammengepackt:
# Yeah, cat mal sinnvoll angewendet :wink:
cat irland* > ireland-mod.osm
So, das hab ich dann mal mit josm versucht zu oeffnen. Pustekuchen.
Da Java halt Speicher braucht. Also josm so mit josm -Xmx1024m
gestartet, da ja 1GB eigentlich reichen sollten bei
einer Datei von knapp 500MB. Aber nein, Java braucht MEHR. Also:
josm -Xmx2048m
. Toll. Fehler anderer Art (weiss ich nicht
mehr genau). Das haette ich mit: josm -Xmx3096m -XX:-UseGCOverheadLimit
beheben koennen (ich hab zusaetzlich
mal den Speicher auf 3 GB (!) erhoeht). Doch das brachte nur:
$ josm -Xmx3096m -XX:-UseGCOverheadLimit
Using /usr/lib/jvm/java-6-sun/bin/java to execute josm.
Revision: Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 16.0-b10 (Sun Microsystems Inc.)
Main-class: JOSM
Main-Version: 2255 SVN
Main-Date: 2009-10-07T19:25:15.114514Z
Debian-Release: 0.0.svn2255-1ubuntu1
Class-Path: /usr/share/java/gettext-commons.jar /usr/share/java/metadata-extractor.jar
Fatal: failed to locate image 'styles/standard/shop/rental/library.png'.
This is a serious configuration problem. JOSM will stop working.
Could not get presets icon styles/standard/shop/rental/library.png
opening fc for extension null
Open file: /home/benjo/irland/ireland-mod.osm (489392837 bytes)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f1f776b3493, pid=4802, tid=139771909764880
#
# JRE version: 6.0_20-b02
# Java VM: Java HotSpot(TM) 64-Bit Server VM
# (16.3-b01 mixed mode linux-amd64 )
# Problematic frame:
# V [libjvm.so+0x3af493]
#
# An error report file with more information is saved as:
# /home/benjo/hs_err_pid4802.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Aborted
Kann doch nicht sooo schwer sein?!
Das war im August 2010. Knapp 6 Monate spaeter will ich es nun nochmal wissen. Also mal josm einfach so, ohne Parameter gestartet. Brachte:
Could not read file 'ireland-mod.osm'.
Error is:
Line 8,282,839 column 22: Missing attribute 'version' on OSM
primitive with ID 73518442. (at line 8,282,838, column 22)
Ok, nochmal mit der schon oben erwaehnten Prozedur editiert. Nochmal einfach copy&paste.
Aber: gleicher Fehler nochmal ein bisschen untendrunter … Also wieder editiert. Und eine Zeile untendrunter wieder. Und siehe da, es geht! Nun aber das Monstrum vor sich zu haben, ist auch nicht schoen. Denn es war ALLES dargestellt. Ist also damit quasi unmoeglich, eine Strasse zu faerben, von allem Unnuetzigem zu abstrahieren (also Hotels, etc.) und dann als PNG zu exportieren. Das will man auch gar nicht. Denn alleine schon das Darstellen hat etwa 10 Sekunden gedauert. Jedes an der Karte bewegen nochmals.
Im Endeffekt hab ich dann einfach von der OSM Startseite 4 Bilder von Irland gemacht, mit Gimp zusammengefuegt, und die Route von selbst eingezeichnet. Kritzelig dank fehlendem Grafiktablett.
Was soll uns das nun sagen?
- Erstmal: Java suckt. Ich hatte noch nie von einer Sprache so wenig gehalten wie von Java, und ich hatte mal Latein in der Schule 😉
- Dann ist XML einfach nur boese. Bei kleinen Bildern/Feeds/etc. vielleicht okay, aber wenn es dann mit OSM oder SVG zu tun hat, wirds einfach nur langsam.
- Und dann haette ich nicht gedacht, dass josm wegen fehlender Versionen (!) in der XML-Datei einen Error wirft …
Jedenfalls danke ich OSM trotzdem, denn es ist schon krass, was die da alles auf die Beine gebracht haben. Daher will ich auch wegen den 3 Fehlern in den Daten nicht boese sein 😉
Wer jetzt immer noch liest: Gibt es vielleicht ein anderes Programm, mit dem man genau das machen kann, was ich vorhatte? Ich bin dankbar fuer jede Hilfe 😊
Hier noch ein Bild von Galway (bzw. ein Teil davon) in josm. Dabei wird vielleicht klar, dass da was einzeichnen schwierig werden koennte …