javascript android google-maps cordova geolocation

javascript - Phonegap de Android-Cómo abrir una aplicación nativa de Google Maps



google-maps cordova (6)

Estoy trabajando en una aplicación de Android con Phonegap y tengo problemas para descubrir cómo abrir la aplicación nativa de Google Maps para mostrar las indicaciones. No tengo ningún problema al abrir un mapa insertando una URL, pero abrir la aplicación me ha dejado perplejo. Hasta ahora solo he podido encontrar sugerencias relacionadas con Phonegap para el desarrollo en la plataforma iOS.

He agregado Google Maps a los permisos de la lista blanca, incluido el archivo Cordova.js correcto y el enlace de google maps en mi etiqueta de script, tengo los permisos correctos en mi archivo AndroidManifest.xml, incluido Cordova.jar y la API de Google Map en mi ruta de compilación , tenga la carpeta de Phonegap xml en el directorio res, js file en el directorio de mis activos / www, jar en el directorio libs.

Lo que estoy tratando de lograr:

    1. Cuando se haga clic en un enlace, abra la aplicación nativa de Google Maps. Si la aplicación no está instalada en el dispositivo, notifique al usuario que Google Maps no está instalado y debe estar instalado.
      a. Ya estoy comprobando la conectividad de la red y el manejo como se debe hacer.
    2. Google Maps se abre y muestra las direcciones desde la ubicación actual del usuario hasta la ubicación del enlace en el que se hizo clic.

El siguiente ejemplo funciona en mi dispositivo Android exactamente igual que en iOS, pero obviamente no abre las acciones de la aplicación Google Maps.

<a> href="http://maps.google.com/maps?q=TD Washington DC"><img src="img/ico_pin.png" />White House</a></a>

El segundo ejemplo se agrega al primero al incluir la ubicación final, aunque no pude averiguar cómo insertar la ubicación actual. Sin embargo, lo más importante es que todavía no abre la aplicación Google Maps.

<a href="javascript:openMaps(''daddr=1600+Pennsylvania+Ave+NW+Washington+DC+20500+USA'');"><img src="img/ico_pin.png" />White House</a> function openMaps(querystring) { var maproot = ''''; maproot = ''http://maps.google.com/maps?saddr=Current+Location&''; window.location = maproot + querystring; }

En el tercer ejemplo a continuación, puedo mostrar un mapa dentro de mi aplicación. Muestra la ruta correcta (desde una vista aérea desde el punto A al punto B), pero de nuevo no abre la aplicación real de Google Maps.

<a id="whDirections" href="#mm_directions" onclick="getDirections()"> <img src="img/ico_pin.png" />White House</a> <div data-role="content"> <div class="ui-bar-c ui-corner-all ui-shadow" style="padding: 1em;"> <div id="mapdirections_canvas" style="height: 300px;"></div> </div> </div> function getDirections() { var directionsService = new google.maps.DirectionsService(); var map; var directionsDisplay = new google.maps.DirectionsRenderer(); var mapOptions = { zoom: 9, zoomControl: true, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("mapdirections_canvas"), mapOptions); directionsDisplay.setMap(map); var myLatLng = new google.maps.LatLng(gmmLat, gmmLong); if (document.getElementById("whDirections")) { var request = { origin: myLatLng, destination: new google.maps.LatLng(38.897096, -77.036545), travelMode: google.maps.TravelMode.DRIVING }; directionsService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); } }); }

Si alguien tiene un enlace o alguna idea sobre esto, realmente agradecería la ayuda. Aparte de la aplicación ''Hello World'', esta es mi primera aplicación móvil. Por favor, avíseme si me he perdido algo o si estoy haciendo esto completamente mal. Si necesita información adicional, por favor hágamelo saber.

Gracias de antemano por la ayuda.


Este trabajo para mi ...

var addressLongLat = yourLatitude+'',''+yourLongitude

Para la aplicación Android Maps:

window.open("geo:"+addressLongLat);

Para la aplicación iOs Maps:

window.open("http://maps.apple.com/?q="+addressLongLat, ''_system'');

Para Google Maps en el navegador de aplicaciones:

window.open("http://maps.google.com/?q="+addressLongLat, ''_system'');


Esto es lo que uso:

function (lat, lon) { var latLon = lat + '','' + lon; if (device.platform.toUpperCase() === "ANDROID") { window.open("geo:" + latLon, "_system"); } else if (device.platform.toUpperCase() === "IOS") { window.open("http://maps.apple.com/?sll=" + latLon + "&z=100&t=k", "_system"); } }

Nota: al abrir mapas de Apple, sll=... y t=k , lo que significa que estoy especificando una longitud y latitud exactas, y t=k significa que quiero que los mapas de Apple muestren imágenes de satélite. Además, solo estoy escribiendo para iOS y Android, así que si estás utilizando otras plataformas, ¡asegúrate de comprobar explícitamente cada una de ellas! Estoy bastante seguro de que el geo: de Android geo: siempre funciona como cabría esperar, pero podría estar equivocado. Recuerda: ¡prueba todo en un dispositivo real!


Esto funciona en Córdoba 3.4.

window.open("http://maps.google.com/?q=" + address, "_system");

Con este método, Google Maps muestra un marcador y puede usar la dirección de texto, no solo las coordenadas de latitud larga.


Para todas las versiones de phonegap / cordova o navegador web. Será la aplicación nativa del mapa de Google.

Para la navegación desde la ubicación actual a q - window.open ("google.navigation: q = 23.3728831,85.3372199 & mode = d", ''_system'');

Para Búsqueda - window.open ("geo: 0,0? Q = pizza", ''_system'');

Lea aquí: https://developers.google.com/maps/documentation/android/intents


Utilice el geo: escriba uri.

<a href="geo:38.897096,-77.036545">open map</a>

y el usuario tendrá la opción de abrir cualquiera de las aplicaciones de mapeo instaladas en su dispositivo.


El complemento Navigator Cordova / Phonegap se puede usar para navegar a un destino utilizando la aplicación de navegación nativa en: -

  1. Android: Google Navigator
  2. iOS: Apple Maps / Google Maps
  3. Windows Phone: Bing Maps