Ich habe umfangreiche Untersuchungen zu diesem Thema durchgeführt, weil mein aktuelles Projekt Offline-Mapping-Funktionen erfordert.
Ich werde Sie viel Zeit sparen, indem Sie auf einige der verfügbaren Open-Source-Tools & Projekte, die ich gefunden habe, zeigen.
OpenStreetPad - https://github.com/beelsebob/OpenStreetPad/
Dieses Projekt wird nicht mehr gepflegt. Es liest jedoch direkt aus osm.pbf-Dateien und rendert die Karten erfolgreich. Sie müssen die Größe der Region verwalten, die Sie zuordnen möchten, da diese Implementierung zu hängen scheint und schließlich zum Absturz führt, wenn Sie versuchen, ein ganzes Land in diese Region zu laden. Ich habe eine 25mb osm.pbf-Datei für eine Teilmenge der LA-Region verwendet und es hat super funktioniert. Ich denke, dass die Rendering-Engine optimiert werden muss.
Mapsforge auf iOS portiert - https://github.com/medvedNick/Mapsforge_iOS
Dieser schneller und scheint einen besseren Job machen die Vektordaten zu tun.
libosmscout - http://wiki.openstreetmap.org/wiki/Libosmscout
Dies ist ein Open-Source-C++ Bibliothek für die Offline-Wiedergabe und Routing mit Vektorkarten. Es wird aktiv gepflegt (siehe Mailingliste). Ich hatte Probleme, es auf Mac OSX zu kompilieren, aber vielleicht hast du mehr Glück. Scheint eine sehr fähige, leistungsfähige und portable Bibliothek zu sein. Sie haben es auf Fedora, Moblin, Ubuntu, Debian, Windows, Qt und Mac OSX/iOS laufen lassen.
Viel Glück. Wenn Sie mit diesen Tools einen Durchbruch erzielen, kommen Sie bitte zurück und teilen Sie Ihre Ergebnisse. Ich arbeite an denselben Sachen und ich könnte selbst Zeiger benutzen.
Vielen Dank für die Informationen und Links. Ich bin neu mit dem Thema Karten besonders offline Karten. Ich habe herausgefunden, dass das Thema tief und schwierig ist, einen Ausgangspunkt zu finden. Einige Funktionen aufzugeben scheint mir nicht die richtige Lösung zu sein. Die Dateigröße war immer noch zu groß. Könnten Sie mir noch einen weiteren Punkt geben? (möglicherweise vektorbasiert) Wäre es möglich, Offline-Routing für zukünftige Erweiterungen zu implementieren? –
Es könnte besser sein, eine Whitelist für Tags zu verwenden, anstatt bestimmte zu löschen (über eine Blacklist), aber das erfordert etwas Aufwand. Wie auch immer, Sie müssen ein wenig im Wiki lesen, um eine Idee zu bekommen, welche Tags Sie benötigen und welche nicht, je nach Anwendungsfall. Natürlich können Sie dies später für das Offline-Routing verwenden, abhängig davon, welche Tags Sie behalten und welche Tags Sie löschen. Abgesehen davon bin ich mir nicht sicher, was du genau fragst. – scai