2011-01-07 14 views
13

Stiamo lavorando a un progetto per aggiungere dati di mappe vettoriali da OSM e NAVTEQ a un'app GPS per iOS.Aggiunta di dati della mappa vettoriale all'app GPS iOS. Rendering di grafica vettoriale in tempo reale

Attualmente l'app visualizza immagini di mappe raster e fornisce funzionalità di spostamento delle mappe. Ora vogliamo fare un ulteriore passo avanti con le mappe vettoriali di integrazione, ma non sappiamo da dove iniziare.

La guida di sviluppatori con esperienza nella navigazione GPS sarebbe ottima.

Ecco il breve sui requisiti:

dispositivi di destinazione: iOS. Il C++ è preferito per il core per la futura compatibilità con altre piattaforme.

l'integrazione dei dati e l'imballaggio: dati Mappa fonte: - NAVTEQ - OpenStreetMap

Formato file: - Ideale per i dispositivi mobili con considerazioni di limitazioni dei dispositivi. - Trovare un formato già stabilito o crearne uno in casa.

Compilazione: - Determinare un formato per dati di origine (SHP, MapInfo ecc) - Compilare formato di origine al formato richiesto.

Mappa motore di rendering: Visualizzazione di mappe: - Vector guarda la mappa sarà separato per la vista mappa raster corrente. - Rendering di dati in linee, punti, poligoni, ecc. In tempo reale. Piastrellato o pre-renderizzato non è accettabile. - Vista birdseye 2D. (3D è previsto per le versioni future). - Scarico ombreggiato per illustrare l'elevazione. - Visualizza dati generati dall'utente come rotte, tracklog, waypoint. - Una scala, ad es. 500 metri. - Le prestazioni veloci sono essenziali per offrire un'esperienza utente migliore. - Un buon esempio sarebbe l'app Tom Tom per iOS. Interazioni sulla mappa: - Panoramica, Zoom, rotazione. - Utilizzate la funzionalità multitouch. Ricerca - Indirizzo, località, POI (Geo Coding) - Indirizzo dalla posizione (Reverse Geo Coding)

I fogli di stile - personalizzare facilmente stato visualizzato l'aspetto della mappa. - Ogni elemento può essere personalizzato.

Vorremmo scoprire da dove iniziare la nostra ricerca. Quali librerie e SDK sono là fuori che vale la pena dedicare il tempo a investigare?

risposta

0

Prova biblioteca MapBox: http://mapbox.com/

+0

MapBox si basa tessera non è vero? –

+0

Stanno lavorando a tessere vettoriali! http://mapbox.com/blog/vector-tiles/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+macstoriesnet+(MacStories) –

2

Alcune note in base alla mia esperienza:

formato dei dati Fonte: probabilmente si vorrà essere in grado di importare i dati da shapefile ESRI e OpenStreetMap (che si presenta come XML o un formato binario più compatto ma equivalente).I dati NAVTEQ possono essere ottenuti come shapefile ESRI. ombreggiato, sollievo può essere ottenuta elaborando i dati di altezza USGS (http://dds.cr.usgs.gov/srtm/).

2D contro 3D: il passaggio da uno a l'altro è un grande. dati 2D è quasi sempre fornito come latitudine e longitudine e proiettato su un piano: Google Maps e OpenStreetMap utilizzano una proiezione Mercatore sferica deriso molto semplice ma molto. Trasferirsi in 3D richiede una decisione sul sistema di coordinate - piano proiettata più altezza rispetto al vero 3D in base alla forma della terra - e possibilmente problemi che coinvolgono il livello di dettaglio. Un buon modo di procedere potrebbe essere quello di disegnare la forma della terra (colline e valli) come una maglia triangolare, poi drappo il resto della mappa su di essa come una texture. Potresti prendere in considerazione "due D e mezzo" - utilizzando una trasformazione prospettica per visualizzare la mappa come se la si osservasse da un'altezza.

Librerie: c'è una discreta lista di librerie di rendering di mappe here, sia commerciali che non commerciali (divulgazione: la mia è una di queste). Molte di queste librerie hanno sistemi di fogli di stile per personalizzare l'aspetto grafico.

Un'ottima libreria di rendering open source (non mia) è Mapnik, ma non sono sicuro che si possa trasferire facilmente su iOS. Tuttavia, è una buona idea di leggere su come Mapnik e altre librerie di rendering fanno il loro lavoro, per ottenere un tatto per il problema. Il wiki di OpenStreetMap è un buon portale per imparare di più sul campo.

Il rendering del testo sulle mappe viene quasi sempre eseguito utilizzando FreeType, una libreria di rasterizzazione open source con una licenza non restrittiva.

0

C'è una lista su OSM Wiki ma purtroppo non è completa.

due librerie vettoriali, che io sappia sono CartoType (che potete vedere in uso nei nuovi Lonely Planet Guides) e Skobbler - Skobbler non hanno un off il prodotto shelf ma bellieve che integreranno le loro mappe e di routing di vettore per il tu.

C'è anche una questione connessa al OSM StackExchange