2012-02-13 11 views
6

Tengo latitud y longitud y quiero abrir google maps centrado en ese punto. Así que uso el siguiente código para ello:¿Cómo se inicia el intento de mapa con un elemento de marcador/superposición en una latitud y longitud determinadas?

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

Sin embargo, esto no pone un marcador en el centro. Quiero colocar algún tipo de marcador en el punto donde empiezo (y opcionalmente algún tipo de nombre para él). ¿Alguna idea de cómo se puede lograr esto?

Respuesta

13

Se puede utilizar como,

Mostrando lugar particular,

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

Mostrando la ruta entre dos sitios,

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

Gracias. Este protocolo URI parece estar indocumentado, ¿alguna idea sobre la compatibilidad de la versión? – apoorv020

+3

1+ para una gran respuesta. – Mihir

+0

Tenga en cuenta que esto no funcionará si olvida agregar el paréntesis alrededor del nombre de la ubicación (Maninagar en este ejemplo) – phreakhead

-2

Usted puede simplemente poner latitud y longitud como extras a la intención de esta manera:

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

Y luego buscarlos desde el MapActivity que haya comenzado:

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

continuación, puede utilizar los valores para todo lo que quieras. Espero que esto ayude.

Cuestiones relacionadas