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 ?
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
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).
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 ?
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.)
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
Suche mal im Wiki nach Mapnik. Brauchst du aber nicht unbedingt – ein Overlay tut’s auch.
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 ?