Android Phonegap – 如何打开本机Google地图应用程序

我正在使用Phonegap处理Android应用程序,并且无法确定如何打开本地Google地图应用程序来显示路线。 我没有任何问题通过插入URL打开地图,但打开应用程序让我难住。 到目前为止,我只能在iOS平台上findPhonegap相关的开发build议。

我已将Google地图添加到白名单权限,包括正确的Cordova.js文件和Google地图链接在我的脚本标记中,在我的AndroidManifest.xml文件中包含Cordova.jar和Google Map API中的正确权限在res目录下有Phonegap xml文件夹,在assets / www目录下有js文件,在libs目录下有jar文件。

我正在努力实现的是:

    1.单击链接时,打开本地Google地图应用程序。 如果应用程序未安装在设备上,请通知用户Google地图未安装并且必须安装。

      一个。 我已经在检查networking连接和处理,因为它应该做的。

    2. Google地图会打开显示从用户当前位置到单击链接位置的路线。

下面的示例在我的Android设备上的工作原理与iOS上的完全相同,但显然不会打开Goog​​le地图应用程序的操作。

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

第二个例子添加到第一个包括结束位置,虽然我无法弄清楚如何插入当前位置。 但最重要的是,它仍然不能打开Goog​​le地图应用程序。

 <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; } 

在下面的第三个例子中,我可以在我的应用程序中显示一个地图。 它确实显示了正确的路线(从A点到B点的俯视图),但是并没有打开实际的Google地图应用程序。

 <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); } }); } 

如果有人有这个链接或任何想法,我会很感激的帮助。 除了“Hello World”应用程序,这是我的第一个移动应用程序。 请让我知道,如果我错过了什么,或者如果我只是做这个完全错误的。 如果需要更多的信息,请告诉我。

先谢谢您的帮助。

Solutions Collecting From Web of "Android Phonegap – 如何打开本机Google地图应用程序"

使用geo:键入uri。

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

用户将可以select打开安装在设备上的任何地图应用程序。

这个工作对我来说…

 var addressLongLat = yourLatitude+','+yourLongitude 

对于Android地图应用程序:

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

对于iOs地图应用程序:

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

对于App Browser中的Google地图:

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

所有版本的phonegap / cordova或网页浏览器。 它将谷歌地图的本地应用程序。

从当前位置导航到q – window.open(“google.navigation:q = 23.3728831,85.3372199&mode = d”,'_system');

对于Search – window.open(“geo:0,0?q = pizza”,'_system');

请阅读 – https://developers.google.com/maps/documentation/android/intents

启动导航器Cordova / Phonegap插件可用于使用本机导航应用程序导航到目的地: –

  1. Android:Google导航器
  2. iOS:Apple地图/ Google地图
  3. Windows Phone:Bing地图

这是我使用的:

 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"); } } 

注意:打开苹果地图时, sll=...t=k ,这意味着我指定了一个精确的经度和纬度, t=k意味着我想要苹果地图显示卫星图像。 此外,我只写iOS和Android,所以如果你使用其他平台,一定要明确检查每个! 我很确定Android的geo:总是按照您的预期工作,但我可能是错的。 记住:在真实的设备上testing一切!

这在cordova3.4工作

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

使用这种方法,Google地图显示一个标记,并且可以使用文本地址,而不仅仅是经纬度坐标