abrir google maps a través de la intención de una ubicación específica en Android

Estoy diseñando una aplicación en la que quiero mostrar una ubicación específica en Map. Estoy pasando String de dirección que ya está en Google Map . A continuación está mi código de Intent .

 String url = "http://maps.google.com/maps?daddr="+address; Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); 

Pero me da Google Map para obtener dirección. Sé por qué, porque utilicé a daddr en la url pero no sé qué usar para una ubicación específica. Por favor, díganme qué usar allí.

No he probado esto, pero podrías intentarlo:

Primer método:

 String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); context.startActivity(intent); 

EDITAR: Esto podría no funcionar con los mapas de Google 7,0

por lo tanto, puedes cambiar el uri para:

Segunda opción:

 String geoUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + mTitle + ")"; 

donde mTitle es el nombre de la ubicación.

Tercera opción:

 geo:0,0?q=my+street+address 

Cuarta opción:

 String map = "http://maps.google.co.in/maps?q=" + yourAddress; 

Espero que eso funcione y ayude: D ..

Obtén Lat-Lng usando este servicio web

http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false

Entonces páselo a este código

  String strUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + "Label which you want" + ")"; Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(strUri)); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); startActivity(intent); 

Espero que te ayude

Gracias.

La última versión del mapa proporciona una mejor solución. Si desea mostrar una dirección en el mapa, use el código a continuación.

 Uri mapUri = Uri.parse("geo:0,0?q=" + Uri.encode(address)); Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); 

Si desea visualizar usando valores de latitud y longitud, use el método a continuación.

 Uri mapUri = Uri.parse("geo:0,0?q=lat,lng(label)"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); 

Lat y lng son la latitud y longitud que desea mostrar, la etiqueta aquí es opcional.

Deberías usar algo como esto

 Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345")); startActivity(intent); 

Y para soltar un pin

 try { Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:" + AppointmentDetailLayout.docLatitude + "," + AppointmentDetailLayout.docLongitude + "?q=" + AppointmentDetailLayout.docLatitude + "," + AppointmentDetailLayout.docLongitude + "(" + label + ")")); intent.setComponent(new ComponentName( "com.google.android.apps.maps", "com.google.android.maps.MapsActivity")); context.startActivity(intent); } catch (ActivityNotFoundException e) { try { context.startActivity(new Intent( Intent.ACTION_VIEW, Uri.parse("market://details?id=com.google.android.apps.maps"))); } catch (android.content.ActivityNotFoundException anfe) { context.startActivity(new Intent( Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.google.android.apps.maps"))); } e.printStackTrace(); } 

Esto funcionará como un encanto. Asegúrese de verificar la existencia de Google Maps, por lo que esto también puede funcionar de manera universal en todos los dispositivos que no sean de Google. Se abrirá en el navegador en tales casos.

Recuerde también que no tiene www en la URL. De lo contrario, esto no funcionará.

  Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?q=loc:" + latitude + "," + longitude); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Only if initiating from a Broadcast Receiver String mapsPackageName = "com.google.android.apps.maps"; if (Utility.isPackageExisted(context, mapsPackageName)) { i.setClassName(mapsPackageName, "com.google.android.maps.MapsActivity"); i.setPackage(mapsPackageName); } context.startActivity(i); 
 Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); if (mapIntent.resolveActivity(getPackageManager()) != null) { startActivity(mapIntent); } 

Consulte esta documentación

Este método de ayuda utiliza uriBuilder para un código más limpio y maneja las condiciones si no hay actividad en el dispositivo que puede abrir el mapa

 public static boolean openMap(Context context, String address) { Uri.Builder uriBuilder = new Uri.Builder() .scheme("geo") .path("0,0") .appendQueryParameter("q", address); Intent intent = new Intent(Intent.ACTION_VIEW, uriBuilder.build()); if (intent.resolveActivity(context.getPackageManager()) != null) { context.startActivity(intent); return true; } return false; } 
  try { Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr=" + src_lat+ "," + src_lng + "&daddr=" + des_lat + "," + des_lng)); startActivity(intent); }catch (ActivityNotFoundException ane){ Toast.makeText(activity, "Please Install Google Maps ", Toast.LENGTH_LONG).show(); }catch (Exception ex){ ex.getMessage(); } } });