Benutzer-Werkzeuge

Webseiten-Werkzeuge


navit

Dies ist eine alte Version des Dokuments!


NavIT, freie Navigation mit dem CityEL

Diese Seite beschreibt eine CityEL Konfiguration für das freie Navigationsprogramm „NavIT“.
Weiterführende Links am Ende der Seite.

XML Code für die Aktivierung des Profils

<vehicle name="City EL 45km/h" profilename="CityEL45" enabled="yes" active="1" source="android:" follow="1">
<log enabled="yes" type="gpx" attr_types="position_time_iso8601,position_direction,position_speed,profilename,position_radius"_
 data="track_%Y%m%d-%%i.gpx" flush_size="1000" flush_time="30"/>
</vehicle>

XML Code für die Fahrzeugparameter

<!-- START: Beta Testing for a 45km/h City EL -->
 
<vehicleprofile name="CityEL45" flags="0x4000000" flags_forward_mask="0x4000002" flags_reverse_mask="0x4000001"_
 maxspeed_handling="0" route_mode="1" static_speed="5" static_distance="25">
			<roadprofile item_types="street_0,street_service,street_parking_lane"_
 speed="5" route_weight="1">
					<announcement level="0" distance_metric="25"/>
					<announcement level="1" distance_metric="100"/>
					<announcement level="2" distance_metric="200"/>
			</roadprofile>
			<roadprofile item_types="street_1_city,living_street" speed="45" route_weight="20">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="street_2_city" speed="45" route_weight="20">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="street_3_city" speed="45" route_weight="40">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="street_4_city" speed="45" route_weight="50">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="highway_city" speed="45" route_weight="10">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="street_1_land" speed="45" route_weight="60">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="street_2_land" speed="45" route_weight="65">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="street_3_land" speed="45" route_weight="70">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="street_4_land" speed="45" route_weight="80">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="street_n_lanes" speed="45" route_weight="80">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="highway_land" speed="45" route_weight="5">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="ramp" speed="45" route_weight="20">
					<announcement level="0" distance_metric="50"/>
					<announcement level="1" distance_metric="200"/>
					<announcement level="2" distance_metric="500"/>
			</roadprofile>
			<roadprofile item_types="roundabout" speed="10" route_weight="10"/>
			<roadprofile item_types="ferry" speed="40" route_weight="40"/>
</vehicleprofile>
<!-- END: Beta Testing for a 45km/h City EL -->

Kartenmaterial

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.

#!/usr/bin/perl
 
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
$curtime=sprintf("%4d-%02d-%02d-%02d%02d",$year+1900,$mon+1,$mday,$hour,$min);
print "\$curtime=".$curtime."\n";
 
#NRW
$ausschnitt="NRW";
$links=5.86533;
$rechts=8.08456;
$oben=51.70831;
$unten=50.66861;
 
#Radevormwald
#ausschnitt=NRW
#links=7.28737
#rechts=7.38899
#oben=51.23742
#unten=51.18408
 
#URL
#XAPI
#myurl=http://open.mapquestapi.com/xapi
#myurl=http://jxapi.openstreetmap.org/xapi
#myurl=http://osmxapi.hypercube.telascience.org
#myurl=http://www.informationfreeway.org
#OverPass
#myurl=http://www.overpass-api.de
$myurl="http://overpass.osm.rambler.ru";
 
#engine
#XAPI
#myeng=/api/0.6/map?bbox=$links,$unten,$rechts,$oben
#myeng=/api/0.6/*[name=Radevormwald]
#OverPass
#myeng=/api/xapi?*[bbox=$links,$unten,$rechts,$oben]
$myeng="/cgi/xapi?map?bbox=";
$tiles=0;
for ($tileside=$links ; $tileside <= $rechts ; $tileside+=0.1)
	{
	for ($tiletop=$unten ; $tiletop<=$oben ; $tiletop+=0.1)
		{
		$tiles=$tiles+1;
		$tilerechts=$tileside+0.1;
		$tileoben=$tiletop+0.1;
		$file=$curtime."-".$ausschnitt."-".sprintf("%03d",$tiles).".osm";
		$url=$myurl.$myeng.$tileside.",".$tiletop.",".$tilerechts.",".$tileoben;
		print $file."\n";
		$command="wget --timeout=0 -O \"".$file."\" \"".$url."\"\n";
		system $command;
##exit		
 
		}
	}
##exit
system "cat $curtime-$ausschnitt-*.osm | maptool --dedupe-ways $curtime-$ausschnitt.bin\n";
exit

Funktionsweise:
Nachdem ein aktueller Zeitstempel generiert wurde, werden die Koordinaten in Schritten zu 0.1 Grad abgefahren.
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 die BIN-Datei ins NavIT Verzeichnis auf der SDCard schieben und NavIT starten.
Für die Koordinaten im Besipiel -Nordrhein-Westfalen; wurden etwa 230 Dateien geladen mit einer Gesamtgröße von etwa 3GB.
Das Konvertieren benötigt dann auch nochmal Platz. Also immer in einer Partition mit genügend freiem Speicher laufen lassen.

LINKS

ToDo

OverpassApi testen und integrieren
Beispiel: www.overpass-api.de/api/xapi?*[bbox=5.86533,50.66861,8.08456,51.70831]
Die Overpass Server sind wohl etwas schneller, aber die API ist etwas komplexer.

navit.1331562001.txt.gz · Zuletzt geändert: 2012/03/12 15:20 (Externe Bearbeitung)