ich habe überall gesucht und keine Antwort gefunden. Deshalb hoffe ich auf Eure Hilfe. Ich möchte eine App für Android schreiben. Dabei möchte ich die OSM Karten
offline benutzen. Meine Idee ist die Karten als Sqlite Datenbank zu speichern um abfragen an diese Datenbanken zu schicken um Informationen,
wie GPS Position, strassenname uws zu bekommen. Die Datenbanken sollen natürlich im Gerät gespeichert werden. Ich habe schon gelesen, dass zum Parsen von OSM
Karten die Postgresql Datenbank nutzen kann. Meine Fragen lauten:
1- Wie kann ich eine Karte Parsen und sie als Sqlite Datenbank in meinem Gerät zu hinterlegen?
2- Wäre das eine Gute Idee oder gibt’s einen besseren Vorschlag?
so aus dem Stand fällt mir da “Spatialite” [1] ein. Ist eine Spatialerweiterung für SqLite, ähnlich wie PostGIS für Postgresql… Es gibt auch Tools die OSM-Daten direkt importieren und z.B. als “Network” (für’s Routing) bzw. als “Map” in der Datenbank ablegen.
Ansonsten wäre evtl. “Mapdroid” [2] noch was für dich.
Was hast du genau vor? Dann könnte man vllt. noch mehr Hinweise geben.
Hi Josef,
hast du dir schon mal Osmand für Androidgeräte angeschaut?
Ist opensource, kann OSM-Karten als Kachelbilder (auch aus einer Datenbank?) sowie auch als Vektorgrafik darstellen. Auch eine recht gute offline Adresssuche ist implementiert.
Und dann?
Da hat dein Anwender ein Android in der Hand und das Gerät sagt ihm dann, wie die Strasse heisst, in der er gerade ist und was für Eigenschaften sie hat.
Schön lesbar im Textfenster oder nicht doch lieber eine Karte dahinter legen?
Verstehe nicht, was das bringen soll.
Gruss
Walter
p.s. um deine Minimalforderungen zu realisieren, braucht du eine DB mit GIS-Funktionen. Spatialite sollte da schon ok sein.
@Walter
zuerst danke für Deine Antwort. Nein das ist nicht alles.
Die App soll mehr als nur das. Aber für den Anfang wäre es nicht schlecht wenn ich diese Informationen bekomme.
Wieso willst du diese Daten denn offline in der App halten? Die Daten die du dazu brauchst könnten recht schnell die Speicherkapazität deines Telefons übersteigen. Denn ein Planet Dump hat um die 16GB komprimiert als xml file sind es ca 250 GB also selbst wenn du nun viel an Informationen weg lässt also nur die Straßen nimmst bist du da recht schnell bei mehren GB an Daten. Die du dann noch mit dem Prozessor deines Telefons verarbeiten/ durchsuchen musst. Selbst mit einer speziellen Datenbank braucht das eine Weile weil eine Telefon nicht die Ressourcen dafür hat.
Da wäre es doch besser deine Position online zu übermitteln und dann die Daten auf deinem Telefon zu speichern. Eventuell kann der Nutzer vorher noch ein bestimmtes Gebiet laden falls er wirklich mal kein Netz haben sollte.
Meine Idee ist: Der Nutzer lädt nur bestimmte Regionen die er für seine Reise braucht.
Kann man die Daten als Routing Tabelle im Gerät speichern und dann beim Fahren diese bearbeiten? Besser gesagt: wie kann man die Daten am besten bearbeiten,
so dass die Karten nicht viel Speicher fressen und sie schneller bearbeiten zu können?
Erkläre doch mal was du genau vor hast. Was soll das für eine App werden? Welcher Nutzerkreis? Was soll da bearbeitet werden?
Denn ich nutze in meinem Telefon nur die Trackaufzeichnung und setze maximal noch an bestimmten Stellen Punkte und notiere mit kurz etwas dazu aber auch nur wenn ich zu Fuß unterwegs bin. Im Auto läuft nur die Trackaufzeichnung sollte es passen werden noch Ortseingang und -ausgang kurz mit einem Punkt erfasst.
Die komplette Nachbearbeitung erfolgt dann zuhause am Rechner.
Dafür reicht es mir aber wenn die die Karte als Bilder habe. Selbst im Winter zum Skifahren nutze ich nur die fertig gerenderten Karten und zeichne dabei zusätzlich auf um es dann eventuell nachzubearbeiten.
Willst du deine Daten dann wieder osm zur Verfügung stellen oder sollen sie dann auf deinem Telefon verbleiben? Wenn du sie wieder zu Verfügung stellen willst solltest du nicht im Datenformat so sehr vom osm Datenformat abweichen ansonsten musst du beim Hochladen anfangen zu transformieren. Was meist du mit einer Routing Tabelle?
Hallo,
Eine der Aufgaben soll die Geschwindigkeitsbegränzung auf Strassen anzuzeigen. Auch die Nutzer werden in der Lage neue Begränzungen
zu melden (Beim Baustellen zum Beispiel). Ic hoffe ist es klarer geworden.
Klar,
aber dann mußt du irgendwie Kartenmaterial in das Endgerät bekommen. Deine Rohdaten für die Lokalisierung (wo bin ich gerade?) bekommst du sicher in 1-2 GB unter und die passen dann auf eine Speicherkarte drauf. Aber der Kartenhintergrund für Offline-Anzeige wohl nicht mehr - zumindest wenn du das bundesweit anbieten möchtest.
Bleiben dir folgende Möglichkeiten:
Kartendaten komprimieren und selber rendern.
Kartenbereich verkleinern und Hintergrundbilder auf der Speicherkarte ablegen.