2012-02-13 7 views
6

Ho una latitudine e una longitudine e voglio aprire le mappe di google centrate in quel punto. Quindi io uso il seguente codice per esso:Come avviare l'intento della mappa con un marcatore/elemento di sovrapposizione a una data latitudine e longitudine?

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
    Uri.parse("geo:"+lat +","+lng)); 
startActivity(intent); 

Tuttavia, questo non pone un marcatore sul centro. Voglio posizionare una sorta di pennarello nel punto in cui inizio (e opzionalmente un qualche tipo di nome per questo). Qualche idea su come questo possa essere ottenuto?

risposta

13

Si può usare come,

Mostrare Particolare Place,

Uri uri = Uri.parse("geo:0,0?q=22.99948365856307,72.60040283203125 
                   (Maninagar)"); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent); 

Visualizzazione percorso tra due luoghi,

Intent intent = new Intent(Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr="+23.0094408+","+72.5988541+"& 
          daddr="+22.99948365856307+","+72.60040283203125)); 
startActivity(intent); 
+0

Grazie. Questo protocollo URI sembra non documentato, qualche idea sulla compatibilità della versione? – apoorv020

+3

1+ per un'ottima risposta. – Mihir

+0

Nota che questo non funzionerà se ti dimentichi di aggiungere la parentesi attorno al nome della posizione (Maninagar in questo esempio) – phreakhead

-2

Si può semplicemente inserire latitudine e longitudine come comparse per l'intento in questo modo:

Intent intent = new Intent(); 
    intent.putExtra("latitude", latitude); 
    intent.putExtra("longitude", longitude); 
    startActivity(intent); 

e poi prendere dalla MapActivity che hai iniziato:

Intent intent = getIntent(); 
    double latitude = intent.getDoubleExtra("latitude", 0.0); 
    double longitude = intent.getDoubleExtra("longitude", 0.0); 

quindi è possibile utilizzare quelli valori per tutto ciò che vuoi. Spero che questo ti aiuti.