Dynamische Karten
Der Vorteil der zweiten Variante ist, dass Navit sämtliche XML-Dateien im Zielordner nach Angaben für einzubindendes Kartenmaterial durchsucht. Neue Karten lassen sich leicht hinzufügen, indem der User im angegebenen Zielordner die Binärdateien ablegt und jeweils eine XML-Include-Datei (Listing 4) erzeugt. Über die Attribute »active« und »route_active« kann er für die Routenerstellung quasi im Hintergrund sogar eine andere Karte verwenden als für die Anzeige.
|
Listing 2: |
|---|
01 <!-- Mapset template for openstreetmaps germany --> 02 <mapset enabled="yes"> 03 <map type="binfile" enabled="yes" data="/usr/share/navit/maps/germany_osm.bin"/> 04 </mapset> |
Somit ließen sich beispielsweise die fürs Routing verwendeten Straßen limitieren, um eine Vorgabe für bevorzugte Routen umzusetzen. Recht neu ist die Option »search_active«, die explizit angibt, welches Kartenmaterial Navit für die Suchfunktion verwendet.
|
Listing 3: |
|---|
01 <!-- multiple mapsets via xml --> 02 <mapset enabled="yes"> 03 <xi:include href="$Navit_SHAREDIR/maps/*.xml"/> 04 </mapset> |
Der Routing-Test (Abbildung 5) auf Basis der Openstreetmap-Daten zeigt aber immer wieder, dass diese noch Lücken bei den Hausnummern aufweisen. Um dem zu begegnen, kann Navit neuerdings eine Straße als Ziel akzeptieren, wobei es einen Mittelwert berechnet, der die Mitte der als Ziel ausgewählten Straße identifiziert.
|
Listing 4: |
|---|
01 <map type="binfile" active="1" route_active="1" search_active="1" data="$Navit_SHAREDIR/maps/osm_deutschland.bin"/> |
Abbildung 5: Die Software erstellt Routen für Auto- und Fahrradfahrer sowie Fußgänger und gibt Navigationsanweisungen.
Navit und D-Bus
Ein eigens für die Interprozess-Kommunikation entwickeltes D-Bus-Plugin [7] erweitert Navit über eine reine Standalone-Desktopapplikation oder einen einfachen GPS-Sensor hinaus. Andere Anwendungen können auf diese Weise über die D-Bus-Verbindung Referenzen auf die entfernten Navit-Objekte erzeugen und deren Eigenschaften zur Laufzeit anpassen. Wie flexibel sich das einsetzen lässt, zeigt Listing 5, mit dem eine Java-Anwendung über D-Bus detaillierte Daten aus Navit abfragt.
Indem es einen von anderen Anwendungen zugewiesenen Anzeigebereich akzeptiert, lernt Navit auch ohne eigenes Fenster zu starten. Das ist möglich, weil sich das Attribut für die Window-ID des Grafikobjekts in Navit dynamisch per D-Bus (»graphics.set_attr()«) setzen lässt:
embeddedHandle = retrieveEmbeddedHandle(navitCanvas);
graphics.set_attr("windowid", UembeddedHandle);
Analog können Programme die Start- und Zielposition für das Routing an das Route-Objekt übergeben und ebenfalls dynamisch die Datenquelle für die GPS-Daten austauschen. Möglich ist auch die Verarbeitung von GPS-Daten direkt über den NMAE-Sensor, per Gpsd [8], Gpsd über D-Bus, Androids GPS [9] oder mobile Tools wie Maemos Mapper [10].
|
Listing 5: D-Bus und |
|---|
01 private void setupLowlevel() throws D-BusException, D-BusExecutionException {
02 bus = D-BusConnection.getConnection(D-BusConnection.SESSION);
03 bus.addSigHandler(Navit.Signal.class, signalHandler);
04 bus.addSigHandler(Navit.Startup.class, this);
05 navit = bus.getRemoteObject(SERVICE_NAME, Navit_NODE_NAME, Navit.class);
06 gui = bus.getRemoteObject(SERVICE_NAME, GUI_NODE_NAME, Gui.class);
07 graphics = bus.getRemoteObject(SERVICE_NAME, GRAPHICS_NODE_NAME,Graphics.class);
08 vehicle = bus.getRemoteObject(SERVICE_NAME, VEHICLE_NODE_NAME,Vehicle.class);
09 route = bus.getRemoteObject(SERVICE_NAME, ROUTE_NODE_NAME, Route.class);
10 }
|
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 4 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





