Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
navit [2012/03/12 09:28] inoculator [Kartenmaterial] |
navit [2012/03/16 14: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 ====== | ||