首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android Phonegap -如何打开原生Google地图应用程序

Android Phonegap -如何打开原生Google地图应用程序
EN

Stack Overflow用户
提问于 2013-04-01 22:14:54
回答 8查看 48.9K关注 0票数 17

我正在开发一个使用Phonegap的Android应用程序,但在弄清楚如何打开原生Google地图应用程序以显示方向时遇到了麻烦。通过插入URL打开地图没有任何问题,但打开应用程序会让我感到困惑。到目前为止,我只能在iOS平台上找到与Phonegap相关的开发建议。

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

我想要实现的是:

  1. 单击链接时,打开原生Google地图应用程序。如果设备上未安装该应用程序,请通知用户Google Maps尚未安装,必须安装。

a.我已经在检查网络连通性,并按照应该完成的方式进行处理。2. Google Maps打开,显示从用户当前位置到点击的链接位置的方向。

下面的示例在我的安卓设备上与在iOS上完全一样,但显然没有打开actions Google Maps应用程序。

代码语言:javascript
复制
<a> href="http://maps.google.com/maps?q=TD Washington DC"><img src="img/ico_pin.png" />White House</a></a>

第二个示例在第一个示例的基础上添加了结束位置,尽管我不知道如何插入当前位置。但最重要的是,它仍然不能打开Google Maps应用程序。

代码语言:javascript
复制
<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 Maps应用程序。

代码语言:javascript
复制
<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‘应用,这是我的第一个移动应用。如果我遗漏了什么,或者我做错了什么,请让我知道。如果需要更多的信息,请告诉我。

提前感谢你的帮助。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-04-01 23:23:04

使用geo: type uri。

代码语言:javascript
复制
<a href="geo:38.897096,-77.036545">open map</a>

并且用户将获得打开安装在其设备上的任何地图应用程序的选择。

票数 60
EN

Stack Overflow用户

发布于 2015-02-26 13:48:03

这对我很有效..。

代码语言:javascript
复制
var addressLongLat = yourLatitude+','+yourLongitude

对于Android地图应用程序:

代码语言:javascript
复制
window.open("geo:"+addressLongLat);

对于iOs地图应用程序:

代码语言:javascript
复制
window.open("http://maps.apple.com/?q="+addressLongLat, '_system');

对于App Browser中的Google地图:

代码语言:javascript
复制
window.open("http://maps.google.com/?q="+addressLongLat, '_system');
票数 15
EN

Stack Overflow用户

发布于 2015-07-21 18:40:22

适用于所有版本的phonegap/cordova或web浏览器。它将谷歌地图原生应用程序。

用于从当前位置到Q- window.open("google.navigation:q=23.3728831,85.3372199&mode=d“的导航,'_system');

For Search - window.open("geo:0,0?q=pizza“,'_system');

点击此处阅读- https://developers.google.com/maps/documentation/android/intents

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15745096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档