2013-01-21 18 views
5

Ho più file KML che sono disegnati in google earth e contengono percorsi diversi. Ora sto cercando di visualizzare quelli del mio progetto Android con Maps API V2.Importa KML in Maps API V2

Esiste una libreria esistente per importare file KML nel progetto Android e visualizzarli nelle mappe? Ho trovato un codice su overflow dello stack (How to draw a path on a map using kml file?) che non è una libreria.

Se non è disponibile alcuna libreria, ho intenzione di crearlo da zero.

+0

Mark, fino a quando sei arrivato? Che tipo di app stai facendo? – danny117

+0

verificarlo @ http://devaarapp.nl/. Il sito Web è in olandese e la demo online è la versione per iOS, ma l'app per Android è praticamente la stessa. –

risposta

0

Per ora Ill presumo solo che non ci sia una libreria pubblica che fa questo per noi, quindi userò il codice di Google per aggiungere polilinee e poligoni alla mia mappa dopo aver analizzato i dati nel mio file KML. Aggiorna questa risposta se viene trovata una libreria.

Crea polilinee e poligoni:

// Instantiates a new Polyline object and adds points to define a rectangle 
PolylineOptions rectOptions = new PolylineOptions() 
     .add(new LatLng(37.35, -122.0)) 
     .add(new LatLng(37.45, -122.0)) // North of the previous point, but at the same longitude 
     .add(new LatLng(37.45, -122.2)) // Same latitude, and 30km to the west 
     .add(new LatLng(37.35, -122.2)) // Same longitude, and 16km to the south 
     .add(new LatLng(37.35, -122.0)); // Closes the polyline. 

// Set the rectangle's color to red 
rectOptions.color(Color.RED); 

// Get back the mutable Polyline 
Polyline polyline = myMap.addPolyline(rectOptions); 
+0

Questa è la seconda parte di ciò che sto raccomandando sopra. Utilizza il KML semplice o altra libreria per analizzare il tuo KML. – Matthew

+0

Ok. Ho analizzato il mio KML con PHP. Questo script echeggia una matrice bidimensionale contenente tutto il lattato e le longitudini. L'app deve solo creare polilinee. Grazie per tutte le informazioni –

+0

Ci sono anche librerie PHP per l'analisi di KML - è quello che stai usando? Non è necessario eseguire questa operazione 'manualmente' – Matthew

0

solo un aggiornamento sulla libreria KML da parte Maps API V2 della questione. Ora è disponibile una versione beta di Google Maps KML Importing Utility.

Fa parte di Google Maps Android API Utility Library. Come documentato permette di caricare file KML da flussi

KmlLayer layer = new KmlLayer(getMap(), kmlInputStream, getApplicationContext()); 

o risorse locali

KmlLayer layer = new KmlLayer(getMap(), R.raw.kmlFile, getApplicationContext()); 

Dopo aver creato un KmlLayer, chiamare addLayerToMap() per aggiungere i dati importati sulla mappa.

layer.addLayerToMap(); 
+0

qualche idea per impostare listener dei clic? –

Problemi correlati