Ho svolto ricerche approfondite su questo argomento, perché il mio progetto attuale richiede funzionalità di mappatura offline.
Ti risparmierò un sacco di tempo indicandoti alcuni degli strumenti open source disponibili & progetti che ho trovato.
OpenStreetPad - https://github.com/beelsebob/OpenStreetPad/
Questo progetto non è più mantenuto. Tuttavia, legge direttamente dai file osm.pbf e rende correttamente le mappe. Dovrai gestire la dimensione della regione che vuoi mappare, perché questa implementazione sembra bloccarsi e alla fine si blocca se provi a caricarvi un intero paese. Ho usato un file osm.pbf 25mb per un sottoinsieme della regione di Los Angeles e ha funzionato alla grande. Penso che il motore di rendering abbia bisogno di ottimizzazione.
Mapsforge porting su iOS - https://github.com/medvedNick/Mapsforge_iOS
Questo è più veloce e sembra fare un lavoro migliore rendere i dati vettoriali.
libosmscout - http://wiki.openstreetmap.org/wiki/Libosmscout
Questo è un open-source libreria C++ per il rendering offline e il routing con mappe vettoriali. È mantenuto attivamente (vedi la loro mailing list). Ho avuto difficoltà a compilarlo su Mac OSX ma forse avresti miglior fortuna. Sembra essere una libreria molto capace, potente e portatile. L'hanno fatto girare su Fedora, Moblin, Ubuntu, Debian, Windows, Qt e Mac OSX/iOS.
Buona fortuna. Se raggiungi un qualche tipo di innovazione utilizzando questi strumenti, torna indietro e condividi i risultati. Sto lavorando alle stesse cose e potrei usare i puntatori da solo.
Grazie per le informazioni e link. Sono nuovo sull'argomento delle mappe, specialmente le mappe offline. Ho capito che il soggetto è profondo e difficile da trovare un punto di partenza. Lasciare alcune funzionalità non sembra la soluzione giusta per me. La dimensione del file era ancora troppo grande. Potresti darmi un altro punto di partenza? (forse basato su vettori) Sarebbe possibile implementare il routing offline per le future estensioni? –
Potrebbe essere preferibile utilizzare una lista bianca per i tag invece di eliminare quelli specifici (tramite una lista nera), ma ciò richiede uno sforzo. In ogni caso, devi fare qualche lettura nel wiki per avere un'idea di quali tag ti serviranno e quali no, a seconda dei casi d'uso. E ovviamente puoi utilizzarlo in seguito per il routing offline, a seconda dei tag che mantieni e dei tag che trascini. A parte questo, non sono sicuro di cosa stia esattamente cercando di chiedermi. – scai