7 Stimmen

Verwendung von OpenStreetMap .osm XML-Daten in iOS

Ich habe eine iOS-App, die Google Maps verwendet, um eine Stadt mit POIs anzuzeigen. Jetzt möchte ich auch eine Offline-Karte anbieten, für deren Anzeige der Nutzer keine Datenverbindung benötigt.

Ich habe die OpenStreetMap Projekt, und ein .osm Der Export dieser Stadt ist 5 MB groß - perfekt für eine iOS-App. Ich habe auch die Routeme-Bibliothek überprüft, aber dort werden nur Kacheln verwendet, und es werden keine Vektordaten erzeugt. Ist das korrekt? Die Dateigröße der PNG-Kacheln ist zu groß für meine App.

Welche Bibliothek ist für die Darstellung von OSM-XML-Daten sinnvoll? Ich weiß, es gibt cloudmade aber ist das die richtige Entscheidung? Ihr Lizenzierungsmodell verwirrt mich ein wenig. Irgendwelche anderen Vorschläge? Hinweise?

1voto

Ando Punkte 10769

Versuchen Sie das auf OSM basierende sdk von skobbler/telenav: http://developer.skobbler.com . Sie haben Offline-Karten (kleine Vektorkarten), benutzerdefinierte POIs und konfigurierbare Stile - es sollte Ihre Bedürfnisse abdecken.

Und die kostenlose Version sollte ausreichen, um Ihre App zu starten und ein paar Nutzer zu gewinnen, bis Sie zahlen müssen.

0voto

rcarver Punkte 953

Route-me rendert nur Kacheldaten, keine Vektordaten.

Cloudmade verfügt nicht über eine direkte Offline-Bibliothek, Sie müssen Ihre eigene erstellen. http://support.cloudmade.com/answers/offline-maps

Ich habe keine Open-Source-Vektorkarten-Renderer gesehen, aber die Google-Suche zeigt ein oder zwei Closed-Source-Renderer an.

0voto

Graham Asher Punkte 1476

Siehe http://wiki.openstreetmap.org/wiki/Rendering für eine Liste von Rendering-Engines für OSM-Daten (Haftungsausschluss: Ich bin der Autor einer dieser Engines). Einige sind quelloffen, andere (z. B. meine) sind für die nicht-kommerzielle Nutzung kostenlos, aber quelloffen.

Sie könnten es mit Mapnik, einer Open-Source-Bibliothek, versuchen, aber die OSM-Seite sagt, dass es schwer einzurichten ist. Es gibt einen Mapnik View Controller für iOS hier: https://gist.github.com/2934223 .

Jeder C- oder C++-Code, den Sie da draußen finden, kann natürlich in iOS verwendet werden, da C und C++ mit Objective C kompatibel sind; ich habe festgestellt, dass es relativ einfach ist, portablen C++-Code in eine iOS-App zu integrieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X