Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
navit [2012/03/15 09:36] inoculator [Kartenmaterial] |
navit [2012/03/16 15:17] (aktuell) inoculator Script aktualisiert und Erklärung erweitert. |
||
---|---|---|---|
Zeile 96: | Zeile 96: | ||
**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 PERL Script unter Linux/ | Ein kleines PERL Script unter Linux/ | ||
+ | == download.pl == | ||
< | < | ||
# | # | ||
Zeile 102: | Zeile 103: | ||
$curtime=sprintf(" | $curtime=sprintf(" | ||
print " | print " | ||
+ | ## | ||
+ | ## | ||
+ | ## | ||
#NRW | #NRW | ||
Zeile 110: | Zeile 114: | ||
$unten=50.66861; | $unten=50.66861; | ||
- | # | + | print " |
- | #ausschnitt=NRW | + | print "West [" |
- | #links=7.28737 | + | $a=< |
- | #rechts=7.38899 | + | if ($a!="" |
- | #oben=51.23742 | + | print "Ost [" |
- | #unten=51.18408 | + | $a=< |
+ | if ($a!="" | ||
+ | print "Nord [" | ||
+ | $a=< | ||
+ | if ($a!="" | ||
+ | print " | ||
+ | $a=< | ||
+ | if ($a!="" | ||
+ | print "Name des Ausschnittes [".$ausschnitt." | ||
+ | $a=< | ||
+ | if ($a!="" | ||
+ | print "Hole " | ||
+ | print " | ||
+ | $a=< | ||
+ | if ($a!=" | ||
#URL | #URL | ||
#XAPI | #XAPI | ||
- | # | + | #$myurl=http:// |
- | # | + | #$myurl=http:// |
- | # | + | #$myurl=http:// |
- | # | + | #$myurl=http:// |
#OverPass | #OverPass | ||
- | # | + | #$myurl=http:// |
$myurl=" | $myurl=" | ||
#engine | #engine | ||
#XAPI | #XAPI | ||
- | # | + | #$myeng=/ |
- | # | + | #$myeng=/ |
#OverPass | #OverPass | ||
- | # | + | #$myeng=/ |
$myeng="/ | $myeng="/ | ||
+ | |||
$tiles=0; | $tiles=0; | ||
- | for ($tileside=$links ; $tileside | + | open (MYFILE, '>' |
+ | |||
+ | for ($tilelinks=$links ; $tilelinks | ||
{ | { | ||
- | for ($tiletop=$unten ; $tiletop<=$oben ; $tiletop+=0.1) | + | for ($tileunten=$unten ; $tileunten<=$oben ; $tileunten+=0.1) |
{ | { | ||
$tiles=$tiles+1; | $tiles=$tiles+1; | ||
- | $tilerechts=$tileside+0.1001; ##0.0001° | + | if ($tiles> |
- | $tileoben=$tiletop+0.1001; ##0.0001° | + | { |
- | $file=$curtime." | + | $tilerechts=$tilelinks+0.1001; ##0.001° Überlappung |
- | ## der sprintf erzeugt eine Zahl mit maximal 5 Stellen hintem Komma. Fließkommaarythmetic kann merkwürdige Zahlen erbringen (z.Bsp: 7.5674999999999) | + | $tileoben=$tileunten+0.1001; ##0.001° Überlappung |
- | $url=$myurl.$myeng.sprintf(" | + | $coordinates=$tilelinks." |
+ | $file=$curtime." | ||
+ | $url=$myurl.$myeng.sprintf(" | ||
print $file." | print $file." | ||
- | $command=" | + | $command=" |
+ | print MYFILE $command; | ||
system $command; | system $command; | ||
- | ##exit | + | } |
- | + | ||
} | } | ||
} | } | ||
- | ##exit | + | close (MYFILE); |
+ | ## | ||
system "cat $curtime-$ausschnitt-*.osm | maptool --dedupe-ways $curtime-$ausschnitt.bin\n"; | system "cat $curtime-$ausschnitt-*.osm | maptool --dedupe-ways $curtime-$ausschnitt.bin\n"; | ||
- | exit | + | exit 0; |
</ | </ | ||
- | Funktionsweise:\\ | + | == Funktionsweise |
- | Nachdem ein aktueller Zeitstempel generiert wurde, werden die Koordinaten in Schritten zu 0.1 Grad abgefahren.\\ | + | 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.\\ | 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.\\ | Die geladenen Dateien werden dann per maptool in das NavIT BIN-Format konvertiert werden.\\ | ||
Zeile 166: | Zeile 195: | ||
In der Zeit wurden bis zu 750MB RAM und 100% CPU Last benötigt. Das Ergebnis ist eine 110MB große BIN-Datei.\\ | 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: | Ein kleiner Hinweis, für jene, welche mit WGET hinter einem Proxy arbeiten wollen und scheitern: | ||
- | Es gibt eine Umgebungsvariable " | + | 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 ====== | ||
* http:// | * http:// |