2013-03-27 10 views
6

Sto lavorando a un progetto per il college e sto avendo grandi difficoltà con una parte di esso.Come memorizzare i dati openstreetmap localmente su un iphone

In poche parole, sto cercando di fare i seguenti 5 cose:

  1. scaricare i dati della mappa strada aperta per la mia città

  2. negozio che i dati localmente sul disco rigido del telefono.

  3. parere che i dati nella mia applicazione iOS come una mappa

  4. segnaposto sulla mappa.

  5. tracciare percorsi lungo le strade tra questi percorsi.

Ho lavorato a questa particolare parte del progetto per un numero di settimane e non riesco ad andare da nessuna parte. Non sono nemmeno riuscito a capire come memorizzare la mappa sul telefono e tanto meno a visualizzare i dati della mappa. Ho provato a utilizzare la libreria "Route-Me" ma non riesco a farlo funzionare (anche se sembra essere una delle migliori librerie per l'utilizzo dei dati di openstreetmap, quindi sto cercando di imparare come usarlo). Mi sento maledettamente sconfitto.

Se qualcuno ha eseguito uno dei compiti che sto cercando di fare, potresti collegarmi a tutorial/guide/video che hai utilizzato.

Non cerco persone che mi diano il codice o facciano il lavoro per me, voglio imparare come farlo, ma se qualcuno può indicarmi la giusta direzione dei siti che potrei imparare, vorrei sii molto grato

Qualsiasi consiglio o feedback sarebbe molto apprezzato

risposta

5

Ecco come ho risolto il problema.

Dato TileMill non legge nativamente .osm/.o5m/.pbf file che ho usato Osmosi per convertire un file in .osm.shp file.

Ho quindi creato un nuovo progetto in Tilemill e aggiunto i particolari file .shp che volevo come livelli al nuovo progetto. Ci vuole un po 'di armeggiare per far apparire la mappa come vuoi, ma è molto simile al css e abbastanza facile da riprendere man mano che vai.

Una volta visualizzata la mappa come volevo, l'ho esportata come file .mbtiles. Questo richiede molto tempo e i file possono essere molto grandi a seconda di quanto sono dettagliati i riquadri.Ho fatto una mappa dell'Irlanda con livelli di zoom compresi tra 7 e 14 e ho realizzato una mappa della sola città di Dublino con livelli di zoom compresi tra 11 e 17 inclusi. Anche se la mappa della sola città di Dublino aveva molte meno tessere, erano entrambe di ~ 200 MB di dimensione.

Poi ho trovato questo tutorial on-line che spiega come memorizzare il file .mbtiles in te applicazione e come leggerlo: http://martinsikora.com/creating-mbtiles-db-for-ios-mapbox-from-hi-res-map-image

Ecco alcuni altri link che ho trovato utile:

http://www.kindle-maps.com/blog/using-tilemill-with-openstreetmap-data.html

http://mapbox.com/developers/mbtiles/

http://mapbox.com/mapbox-ios-sdk/api/

http://mapbox.com/developers/api/#static_api

http://support.mapbox.com/discussions

Spero che questo sia utile a qualcuno

+0

Cosa hai fatto per ridurre le dimensioni del tuo file .mbtiles? Ti sto chiedendo perché anche il mio è troppo grande e posso importarlo sulla mia applicazione. – arniotaki

+0

Ho ridotto la quantità di livelli che stavo usando per uno. Ho cambiato il tipo di immagine in png8 (o qualunque sia il più piccolo) e ho personalizzato la mappa prendendo cose che non avevo bisogno, era ancora circa 70-80 MB – Ian

4

vorrei suggerire di provare il MapBox iOS SDK. In realtà è biforcuta dalla libreria Route-Me e ti consentirà di realizzare qualsiasi cosa nella tua lista.

Un punto chiave da ricordare è che si dispone di un altro passaggio tra il download dei dati OSM e l'archiviazione locale sul dispositivo iOS, vale a dire la generazione delle tessere mappa e la memorizzazione in una sorta di database.

Here è un esempio di app iOS che utilizza l'SDK MapBox con origini mappa sia online che offline ed è un buon punto di partenza.

+0

La ringrazio molto per la risposta, cercherò in questo subito! – Ian

Problemi correlati