Ho un file PBF che contiene le seguenti informazioni su un Paese:
-
Nodi, ciascuno con la propria longitudine, latitudine e proprietà; utilizzato per memorizzare punti in uno spazio 2D.
-
I modi, ciascuno con le loro proprietà, sono connessi attraverso i nodi; usato per memorizzare strade, confini.
Sebbene questo file sia solo 80 MB nella sua forma compressa, è 592 MB quando non è compresso e memorizzato in un DB.
Sì, e questo è solo per un paese, il Belgio. Immagina di mettere insieme Francia, Germania e Italia.
Prendiamo ad esempio una singola autostrada, da Anversa a Bruxelles fino a Charleroi. Ciò consisterebbe in una tonnellata di nodi per memorizzare tutti i turni in autostrada, ma ho bisogno di tutti questi turni? Ne dubito.
Lascia che ti dica cosa voglio essere in grado di fare:
-
Voglio visualizzare la mappa a diversi livelli di zoom; principali città, città minori e livello stradale almeno.
-
Voglio poter ottenere informazioni sul routing tra due punti.
-
Voglio essere in grado di calcolare la strada più vicina alla mia posizione GPS.
-
Cerca una posizione, tramite un indice nel database.
Ma, soprattutto, il database non dovrebbe essere troppo grande come verrà memorizzato su un dispositivo mobile .
Quindi, ho pensato a una combinazione di due tecniche:
-
Piastrelle di immagini a scopo di visualizzazione, per aggirare la memorizzazione / elaborazione di tutti i singoli nodi.
-
Archiviazione degli endpoint delle strade per informazioni sull'instradamento, insieme a informazioni sulla strada.
Il problema con questo è che non posso calcolare la strada più vicina alla mia posizione GPS con solo queste informazioni; immagina che una curva in una strada, non posso determinare che sono sull'autostrada con solo i due endpoint. Stavo pensando di memorizzare nodi intermedi tra gli endpoint ma sarebbe molto costoso generare, credo. Inoltre, determinare i punti finali delle strade (che sono come un T-split) non è probabilmente nemmeno così facile, in quanto ho bisogno di capire se ho bisogno di memorizzare il punto medio in cima a quel T-split o no.
Quindi, la visualizzazione è facile usando le tessere dell'immagine; ma non riesco a trovare un modo semplice per fare routing e localizzazione GPS, che tipo di tecnica di archiviazione dovrei esaminare? Trovo un po 'scomodo che un file 80 MB
si trasformi in un database di 592 MB
, voglio ridurre quella dimensione il più possibile ...
Cosa posso fare per farlo nel modo più efficiente possibile? In termini di disco e CPU. Sto prendendo di mira un WP7 ...