Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
navit [2012/03/12 10:28] inoculator [Kartenmaterial] |
navit [2012/03/16 15:17] (aktuell) inoculator Script aktualisiert und Erklärung erweitert. |
||
---|---|---|---|
Zeile 95: | Zeile 95: | ||
====== Kartenmaterial ====== | ====== Kartenmaterial ====== | ||
**Nachfolgender Abschnitt ist Alpha Status. Es muss noch eine Menge gemacht werden in Bezug auf Quellserver und Datenmenge.**\\ | **Nachfolgender Abschnitt ist Alpha Status. Es muss noch eine Menge gemacht werden in Bezug auf Quellserver und Datenmenge.**\\ | ||
- | Ein kleines | + | Ein kleines |
+ | == download.pl == | ||
< | < | ||
- | #festlegen der aktuellen Zeit | + | #!/ |
- | curtime=$(date +%F-%H%M) | + | |
+ | ($sec, | ||
+ | $curtime=sprintf("%4d-%02d-%02d-%02d%02d", | ||
+ | print " | ||
+ | ## | ||
+ | ## | ||
+ | ## | ||
- | #Je nach gewuenschtem Abschnitt auskommentieren | ||
#NRW | #NRW | ||
- | ausschnitt=NRW | + | $ausschnitt="NRW"; |
- | links=5.86533 | + | $links=5.86533; |
- | rechts=8.08456 | + | $rechts=8.08456; |
- | oben=51.70831 | + | $oben=51.70831; |
- | unten=50.66861 | + | $unten=50.66861; |
- | # | + | print " |
- | #links=7.28737 | + | print "West [".$links." |
- | #rechts=7.38899 | + | $a=< |
- | #oben=51.23742 | + | if ($a!="" |
- | #unten=51.18408 | + | print "Ost [".$rechts." |
+ | $a=< | ||
+ | if ($a!="" | ||
+ | print "Nord [".$oben." | ||
+ | $a=< | ||
+ | if ($a!="" | ||
+ | print " | ||
+ | $a=< | ||
+ | if ($a!="" | ||
+ | print "Name des Ausschnittes [".$ausschnitt." | ||
+ | $a=< | ||
+ | if ($a!="" | ||
+ | print "Hole " | ||
+ | print " | ||
+ | $a=< | ||
+ | if ($a!=" | ||
- | #URL -es gibt viele Server im Netz | + | #URL |
- | # | + | #XAPI |
- | myurl=http:// | + | #$myurl=http:// |
+ | #$myurl=http:// | ||
+ | # | ||
+ | # | ||
+ | #OverPass | ||
+ | # | ||
+ | $myurl=" | ||
- | #holen der OSM Daten (manchmal reagieren die Server nicht, man ist nicht alleine ;-) | + | #engine |
- | wget --timeout=0 -O $curtime-$ausschnitt.osm "$myurl/api_ | + | #XAPI |
- | /0.6/map? | + | #$myeng=/api/0.6/ |
+ | # | ||
+ | #OverPass | ||
+ | # | ||
- | #Umwandeln der OSM Daten in die NavIT BIN Daten | + | $myeng="/ |
- | cat $curtime-$ausschnitt.osm | maptool $curtime-$ausschnitt.bin | + | |
- | </code> | + | |
- | Nun die BIN-Datei ins NavIT Verzeichnis auf der SDCard schieben und NavIT starten.\\ | + | $tiles=0; |
- | Man sollte beim Laden allerdings nicht zuviel erwarten. Mal ein Statusbeispiel eines Servers, der gerade meinen Request für NRW abarbeitet:\\ | + | open (MYFILE, '>' |
- | ^Timestamp ^Remote Addr ^State ^Request ^Elements ^Runtime ^ | + | |
- | |11-Mar-2012 17:01:11|84.60.212.184|DATABASE_QUERY|map? | + | for ($tilelinks=$links ; $tilelinks <= $rechts ; $tilelinks+=0.1) |
- | < | + | { |
+ | for ($tileunten=$unten ; $tileunten< | ||
+ | { | ||
+ | $tiles=$tiles+1; | ||
+ | if ($tiles> | ||
+ | { | ||
+ | $tilerechts=$tilelinks+0.1001; | ||
+ | $tileoben=$tileunten+0.1001; | ||
+ | $coordinates=$tilelinks." | ||
+ | $file=$curtime." | ||
+ | $url=$myurl.$myeng.sprintf(" | ||
+ | print $file." | ||
+ | $command=" | ||
+ | print MYFILE $command; | ||
+ | system $command; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | close (MYFILE); | ||
+ | ##exit 0; | ||
+ | system "cat $curtime-$ausschnitt-*.osm | maptool --dedupe-ways $curtime-$ausschnitt.bin\n"; | ||
+ | exit 0; | ||
+ | |||
+ | </ | ||
+ | == Funktionsweise == | ||
+ | Es werden ein paar Wertevorgaben gesetzt für Nordrhein Westfalen. Danach kann man aber mit eigenen Werten in der Eingabeaufforderung sein eigenes Quadrat anfordern.\\ | ||
+ | Es muss dabei auf die Syntax geachtet werden. Zwar kommt nochmal eine Abfrage nach der letzten Bestätigung, | ||
+ | Nachdem ein aktueller Zeitstempel generiert wurde, werden die Koordinaten in Schritten zu 0.1 Grad abgefahren, dabei wird eine Überlappung um 0.001° erzeugt, um Fehler in der Umrechnung auf dem Server entgegenzuwirken.\\ | ||
+ | Jedes dieser 0.1-Qadrate kann zwischen 5MB bis 100MB groß werden.\\ | ||
+ | Die geladenen Dateien werden dann per maptool in das NavIT BIN-Format konvertiert werden.\\ | ||
+ | Nun manuell | ||
+ | Für die Koordinaten im Besipiel -Nordrhein-Westfalen; | ||
+ | Das Konvertieren benötigt dann auch nochmal Platz. Also immer in einer Partition mit genügend freiem Speicher laufen lassen.\\ | ||
+ | Auf einer Virtuellen Maschine mit 1024MB Speicher und 1CPU (2.4GHz) brauchte die Konvertierung etwa 10 Minuten.\\ | ||
+ | In der Zeit wurden bis zu 750MB RAM und 100% CPU Last benötigt. Das Ergebnis ist eine 110MB große BIN-Datei.\\ | ||
+ | Ein kleiner Hinweis, für jene, welche mit WGET hinter einem Proxy arbeiten wollen und scheitern: | ||
+ | Es gibt eine Umgebungsvariable " | ||
+ | == Scriptoutput == | ||
+ | Es wird zum einen eine Textdatei angelegt, in welcher alle WGET Befehle aufgelistet sind. Mir ist aufgefallen, | ||
+ | Wenn Ihr Änderungen in OSM an Eurem Kartenausschnitt macht, dann könnt ihr im Namen der Datei auch das Koordinatenfeld erkennen. Somit können gezielt einzelne Quadrate aktualisiert werden.\\ | ||
====== LINKS ====== | ====== LINKS ====== |