Navigationssoftware entwickeln

Hallo liebe Community,
ich bin gerade in der Abschlußphase meines Studiums und möchte nun mit meiner Diplomarbeit beginnen. Als Thema hat mein Professor vorgeschlagen eine Navigationssoftware zu entwickeln, die natürlich auf OpenStreet basiert. Ich habe mich ein wenig in die Materie reingelesen und konnte in Erfahrung bringen das man den gesamten Datenumfang als Planet.osm runterladen kann und diesen dann in einer SQL Datenbank mit Hilfe von Osmosis importieren kann. Meine Überlegungen sind natürlich nur rein theoretischer Natur ! Dazu habe ich ein paar Fragen :

  • Ist es möglich die Datenbank ständig aktualisiert zu halten, ohne jedesmal den gesamte Planet.osm neu runterzuladen, also quasi nur die aktualisierten Datensätze in die Datenbank zu importieren ?
  • Ich arbeite mit der Distribution Ubuntu und der IDE Eclipse und möchte das ganze mit Hilfe von Java realisieren, ist dies sinnvoll ?

MfG

marvel

Du könntest auch mit einem kleineren Kartenausschnitt arbeiten – z. B. ein Bundesland. Die gibt’s fertig und fast tagesaktuell hier: http://download.geofabrik.de/osm/europe/germany/. Dann solltest du keine diffs benötigen. Meine PostgreSQL-DB verkraftet einen Komplettimport von Sachsen alle paar Wochen ganz gut :slight_smile:

Mit Osmosis kannst du dir zum Testen auch noch kleinere Ausschnitte extrahieren.

Zur zweiten Frage kann ich als Hobbyprogrammierer nicht viel sagen. Aber Java wird hier viel verwendet (JOSM, Osmosis etc).

Gruß

Plasmon

Edit: Viellecht hilft dir http://wiki.openstreetmap.org/wiki/Category:Java weiter.

hi,

das ist möglich, mit osmosis und minutely diffs.

etwas doku gibt es hier

http://wiki.openstreetmap.org/wiki/Minutely_Mapnik

ciao

gerhard

hello again,
super wie schnell man hier eine antwort bekommt :D. danke erstmal für die beantwortung meiner fragen. so wie ich das verstehe ist osmosis der datenbankimporter, der vorwiegend für mysql eingesetzt wird und mit hilfe des tools osm2pgsql kann man dann auch datensätze in postgresql importieren. mapnik ist die rendermaschine, nimmt sich also die informationen aus der datenbank und stellt diese im ergebnis visuell dar, also als karte. wenn ich also ein programm schreiben möchte welches eine route berechnet, muss ich zuerst die daten aus der datenbank lesen, dann innerhalb des programms die berechnungen für die route machen und zum schluß dem renderer das ergebnis der berechnung übermitteln, damit dieser das ganze grafisch darstellen kann. geht meine überlegung in die richtige richtung ?

habe bereits eine postgresql datenbank eingerichtet und die deutschland osm file in diese importiert. mapnik renderer ist auch installiert und habe ihm aus der db die daten gegeben. wie kann ich jetzt am besten mit mapnik arbeiten ?

mfg

marvel

Hi,

Exakt.

Nicht unbedingt. Am besten beschäftigst du dich mal mit OpenLayers, dem Framework für das Darstellen der Karten (slippy map) in einem Browser. Du kannst die Standardkarten (Mapnik, Tiles@Home, CycleMap, ÖPNV-Karte, Openstreetbrowser usw.) als “Hintergrund” nutzen und dort transparente Layer oder auch Vektordaten darüberlegen. Die Vektordaten können z. B. als GML vorliegen. Als solche müsstest du deine Route exportieren. PostGIS stellt ja schon passende Funktionen bereit (ST_AsGML etc.)

Irgendwo im Wiki findest du bestimmt ein einfaches Bsp. wie du eine einfache Website erstellst, mir fällt da gerade http://wiki.openstreetmap.org/wiki/DE:OSM_in_Website_f%C3%BCr_Gemeinde ein. Die Doku von openlayers.org ist auch ganz brauchbar. Du kannst die Overlays auch dynamisch mit JavaScript erstellen.

Also: Start-/Zielkoordinaten per Webinterface eingeben → Java-Programm berechnet Route und liefert die per GML an den Browser zurück. Der HTML/JavaScript-Quellcode hält sich definitiv in Grenzen :slight_smile:

Suche mal im Wiki nach Mapnik. Brauchst du aber nicht unbedingt – ein Overlay tut’s auch.

Viel Spaß beim Entdecken :slight_smile:

Btw., kennst du openrouteservice.org?

Gruß, Plasmon

Hallo marvel,

wenn du deine Navi-Lösung schon in Java schreiben willst, hast du dir schon http://wiki.openstreetmap.org/wiki/Traveling_salesman angeschaut?

(Oder hab ich dir damit jetzt das grundlegende neue Programmieren “verdorben”?)

Der Autor Marcus Wolschon ist ja immer recht hilfsbereit bei Fragen …

und vielleicht hilft die auch noch generell http://wiki.openstreetmap.org/wiki/Routing nebst Unterseiten weiter …

nun ich habe als vorgabe das framework qt welches auf c++ basiert.

openlayers ist für nach meinem verständnis nur für webanwendungen konzipiert worden, ich mlchte eine c++ applikation schreiben.

nun mir wäre schon sehr geholfen wenn ich mit mapnik den ersten layer erzeugen könnte, also die hintergrundgrafik und dann noch einen weiteren layer mit luftfahrtinformationen darüberlege.

kann man mit mapnik einen abschnitt rendern lassen und die dazu passenden geodaten direkt mit exportieren oder muss ich die geodaten in anschluß drüberschmeissen ?

http://roadmap.sf.net unterstützt (unter anderen) qt3 und qt4 Frontends.