Benutzer-Werkzeuge

Webseiten-Werkzeuge


navit

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
navit [2012/03/13 07:08]
inoculator [Kartenmaterial]
navit [2012/03/16 14: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/Ubuntu. Ein kleines PERL Script unter Linux/Ubuntu.
 +== download.pl ==
 <code=bash> <code=bash>
 #!/usr/bin/perl #!/usr/bin/perl
Zeile 102: Zeile 103:
 $curtime=sprintf("%4d-%02d-%02d-%02d%02d",$year+1900,$mon+1,$mday,$hour,$min); $curtime=sprintf("%4d-%02d-%02d-%02d%02d",$year+1900,$mon+1,$mday,$hour,$min);
 print "\$curtime=".$curtime."\n"; print "\$curtime=".$curtime."\n";
 +##$curtime="2012-03-13-1312";
 +##$speedlimit=" --limit-rate=15";
 +##$starttile=85;
  
 #NRW #NRW
Zeile 110: Zeile 114:
 $unten=50.66861; $unten=50.66861;
  
-#Radevormwald +print "Eingabe des Koordinatensystem [Format: ddd.ddddd (Dezimalnotation)]\n"; 
-#ausschnitt=NRW +print "West [".$links."]:\t"; 
-#links=7.28737 +$a=<STDIN>; 
-#rechts=7.38899 +if ($a!="") {$links=$a;} 
-#oben=51.23742 +print "Ost [".$rechts."]:\t"; 
-#unten=51.18408+$a=<STDIN>; 
 +if ($a!="") {$rechts=$a;} 
 +print "Nord [".$oben."]:\t"; 
 +$a=<STDIN>; 
 +if ($a!="") {$oben=$a;} 
 +print "Süd [".$unten."]:\t"; 
 +$a=<STDIN>; 
 +if ($a!="") {$unten=$a;} 
 +print "Name des Ausschnittes [".$ausschnitt."]:\t"; 
 +$a=<STDIN>; 
 +if ($a!="") {$ausschnitt=$a} 
 +print "Hole ".$ausschnitt." aus ".$rechts.";".$links.";".$oben.";".$unten."\n"; 
 +print "Richtig [yes|NO]:\t"; 
 +$a=<STDIN>; 
 +if ($a!="yes") {exit ();}
  
 #URL #URL
 #XAPI #XAPI
-#myurl=http://open.mapquestapi.com/xapi +#$myurl=http://open.mapquestapi.com/xapi 
-#myurl=http://jxapi.openstreetmap.org/xapi +#$myurl=http://jxapi.openstreetmap.org/xapi 
-#myurl=http://osmxapi.hypercube.telascience.org +#$myurl=http://osmxapi.hypercube.telascience.org 
-#myurl=http://www.informationfreeway.org+#$myurl=http://www.informationfreeway.org
 #OverPass #OverPass
-#myurl=http://www.overpass-api.de+#$myurl=http://www.overpass-api.de 
 $myurl="http://overpass.osm.rambler.ru"; $myurl="http://overpass.osm.rambler.ru";
  
 #engine #engine
 #XAPI #XAPI
-#myeng=/api/0.6/map?bbox=$links,$unten,$rechts,$oben +#$myeng=/api/0.6/map?bbox=$links,$unten,$rechts,$oben 
-#myeng=/api/0.6/*[name=Radevormwald]+#$myeng=/api/0.6/*[name=Radevormwald]
 #OverPass #OverPass
-#myeng=/api/xapi?*[bbox=$links,$unten,$rechts,$oben]+#$myeng=/api/xapi?*[bbox=$links,$unten,$rechts,$oben] 
 $myeng="/cgi/xapi?map?bbox="; $myeng="/cgi/xapi?map?bbox=";
 +
 $tiles=0; $tiles=0;
-for ($tileside=$links ; $tileside <= $rechts ; $tileside+=0.1)+open (MYFILE, '>'.$curtime.'-'.$ausschnitt.'.txt'); 
 + 
 +for ($tilelinks=$links ; $tilelinks <= $rechts ; $tilelinks+=0.1)
  {  {
- 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.1+ if ($tiles>=$starttile) 
- $tileoben=$tiletop+0.1+
- $file=$curtime."-".$ausschnitt."-".sprintf("%03d",$tiles).".osm"; + $tilerechts=$tilelinks+0.1001##0.001° Überlappung 
- $url=$myurl.$myeng.$tileside.",".$tiletop.",".$tilerechts.",".$tileoben;+ $tileoben=$tileunten+0.1001; ##0.001° Überlappung 
 + $coordinates=$tilelinks."-".$tileunten."-".$tilerechts."-".$tileoben
 + $file=$curtime."-".$ausschnitt."-".$coordinates."-".sprintf("%03d",$tiles).".osm"; 
 + $url=$myurl.$myeng.sprintf("%.5f",$tilelinks).",".sprintf("%.5f",$tileunten).",".sprintf("%.5f",$tilerechts).",".sprintf("%.5f",$tileoben);
  print $file."\n";  print $file."\n";
- $command="wget --timeout=0 -O \"".$file."\" \"".$url."\"\n";+ $command="wget".$speedlimit." --proxy --timeout=0 -O \"".$file."\" \"".$url."\"\n"
 + print MYFILE $command;
  system $command;  system $command;
-##exit  + }
- +
  }  }
  }  }
-##exit+close (MYFILE); 
 +##exit 0;
 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; 
 </code> </code>
-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, aber es gibt noch keinen Syntaxcheck.\\ 
 +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 162: Zeile 192:
 Für die Koordinaten im Besipiel -Nordrhein-Westfalen; wurden 253 Dateien geladen mit einer Gesamtgröße von 3.7GB.\\ Für die Koordinaten im Besipiel -Nordrhein-Westfalen; wurden 253 Dateien geladen mit einer Gesamtgröße von 3.7GB.\\
 Das Konvertieren benötigt dann auch nochmal Platz. Also immer in einer Partition mit genügend freiem Speicher laufen lassen.\\ 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:\\ Ein kleiner Hinweis, für jene, welche mit WGET hinter einem Proxy arbeiten wollen und scheitern:\\
-Es gibt eine Umgebungsvariable "no_proxy". Unter Debian/Ubuntu ist dort ein falsches Komma drin, das muss weg.+Es gibt eine Umgebungsvariable "no_proxy". Unter Debian/Ubuntu ist dort ein falsches Komma drin, das muss weg.\\ 
 +== Scriptoutput == 
 +Es wird zum einen eine Textdatei angelegt, in welcher alle WGET Befehle aufgelistet sind. Mir ist aufgefallen, daß mittendrin schonmal kleine Dateien (~800Byte) kommen, welche eine Fehlermeldung beinhalten. Mit der Textdatei kann der entsprechende Befehl einfach auskopiert und nochmal einzeln im Terminal abgesetzt werden.\\ 
 +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://maps9.navit-project.org/   * http://maps9.navit-project.org/
navit.1331622503.txt.gz · Zuletzt geändert: 2012/03/13 07:08 von inoculator