Android: abre la intención del mapa con direcciones con dos puntos

¿Cómo abrir la intención del mapa con las direcciones?

Se acerca de

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format(Locale.US, "geo:%.8f,%.8f", latitude, longitude))); startActivity(Intent.createChooser(intent, "Select an application")); 

Este código funciona bien para un punto. Pero quiero mostrar diálogo con TODAS las aplicaciones de mapas, y abrir las direcciones del punto A al punto B con cualquier aplicación (Google Map, Citymapper, navegador web, etc).

4 Solutions collect form web for “Android: abre la intención del mapa con direcciones con dos puntos”

Has probado esto

 String uri = "http://maps.google.com/maps?f=d&hl=en&saddr="+latitude1+","+longitude1+"&daddr="+latitude2+","+longitude2; Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)); startActivity(Intent.createChooser(intent, "Select an application")); 

Desafortunadamente, no se puede usar un URI universal para representar dos puntos geográficos.

Puede especificar un único punto y pasarlo al selector como:

 String uri = String.format(Locale.ENGLISH, "geo:%f,%f", lat, lng); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); context.startActivity(Intent.createChooser(intent, "Select your maps app")); 

Sin embargo, para obtener direcciones, por desgracia, tendrá que utilizar:

URL única:

La mejor opción en mi opinión. Debe utilizar un único proveedor de mapas y utilizar su URL como URI. De esta manera, las instrucciones que obtenga son consistentes, compatibles con varios dispositivos y lo más importante es fácil de usar / obtener.

URL viejas y sencillas:

Puede utilizar diferentes URL para diferentes proveedores de mapas.

Por ejemplo, Citymapper :

 https://citymapper.com/london/superrouter?start=LAT_START,LNG_START&end=LAT_END,LNG_END 

Sin embargo otros no son tan amigables, por ejemplo Yandex :

 http://maps.yandex.com/?rtext=59.326460%2C12.699889~57.386826%2C12.348327&sll=12.941588%2C56.517713&sspn=34.716797%2C12.029728&rtm=atm&source=route&ll=12.941588%2C56.517713&spn=34.716797%2C12.029728&z=6&l=map 

Tal vez usted puede decodificar esa url usted mismo 🙂

API de mapas integrados

Integre, por ejemplo, Google Maps API en su aplicación y muestre las instrucciones desde allí. Necesitará obtener direcciones en el formato de los puntos lat-lng de la API de direcciones en un formato JSON. Entonces usarías esos puntos para dibujar una polilínea.

prueba esto

  Uri uri = Uri.parse("geo:" + latitude1 + "," + longitude1 + "?q=" + Uri.encode(latitude2 + "," + longitude2 + "(" +Label+ ")")); Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri); startActivity(intent); 

Si crea una URL en el formato

 http://maps.google.com/maps?saddr=[latitude1], [longitude1]&daddr=[latitude2], [longitude2] 

Donde [latitud1] y [longitud1] son ​​la latitud y longitud para el punto de inicio, e igualmente [latitud2] y [longitud2] son ​​el punto final, y lo establece como una cadena

 Intent navigationIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(navigationUrlOfMap)); intent.setClassName("com.Google.Android.apps.maps", "com.Google.Android.maps.MapsActivity"); startActivity(intent); 

O también puedes usar esto

 startActivity(Intent.createChooser(intent, "Select an application")); 

Si desea configurar la aplicación del selector

  • Google Map Api v2 muestra "V / GoogleSignatureVerifier: firma no válida" mensaje de error en el registro
  • Google Maps API Android
  • Android Google Maps API v2 ruta de visualización
  • Cómo obtener mapas renderizados dentro de un CardView
  • Actividad de Map de Android se bloquea al salir Actividad
  • Cómo encontrar la distancia (por carretera) entre 2 puntos geo en la aplicación de Android sin utilizar google map direction api?
  • Uso de Google MapView v2 en Live Wallpaper
  • ¿Cómo puedo crear un mapa personalizado en Google Maps?
  • ¿Cómo logro una animación suave del marcador de ubicación en android en un mapa de google?
  • Problema de contexto en el ejemplo de Android "Google Map View"
  • AVD No se puede probar ninguna aplicación usando AVD
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.