Google地图的地理位置无法使用PhoneGap

时间:2012-07-27 16:47:05

标签: android cordova geolocation position

我正在使用Phonegap(cordova-2.0.0),我已将cordova-2.0.0.js放在assets / www目录中,并附带我的其他文件,我已将cordova-2.0.0.jar放入引用的库中。我在Android清单和config.xml中添加了所需的代码。我创建了一个名为'storelocation.html'的html文件,我希望这个文件能够获取用户的当前坐标并将其传递到Google地图中,这些地图将使这些坐标位于地图的中心。我不确定这个文件中的代码有什么问题,有人可以查看我是不是只是傻了?

<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

<title>Device Properties Example</title>

<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyBlNOgoh-8Xg9_OYqUUxReMJZk4syLFayM&sensor=true"type="text/javascript"></script>
<script type="text/javascript">

// Wait for Cordova to load

document.addEventListener("deviceready", onDeviceReady, false);

// Cordova is ready
//
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(onSuccess, onError,         {enableHighAccuracy:true });
}

// onSuccess Geolocation
//
/* function onSuccess(position) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: '           + position.coords.latitude              +   '<br />' +
                        'Longitude: '          + position.coords.longitude             + '<br />' +
                        'Altitude: '           + position.coords.altitude              + '<br />' +
                        'Accuracy: '           + position.coords.accuracy              + '<br />' +
                        'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                        'Heading: '            + position.coords.heading               + '<br />' +
                        'Speed: '              + position.coords.speed                 + '<br />' +
                        'Timestamp: '          +                                   position.timestamp          + '<br />';
} 

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
} */
            var element = document.getElementById('geolocation');


function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(position.coords.latitude, position.coords.longitude), 13);
map.setUIToDefault();

}
}



</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 500px; height: 300px"></div>
</body>
</html>

非常感谢,如果你们中的一个天才可以帮助我,我真的很感激,我一直试图看到2天的错误。顺便说一句,用户的坐标找不到,找到它们的唯一方法(我发现)是使用telnet进行地理修复,但我希望手机找到坐标,而不是我。

2 个答案:

答案 0 :(得分:0)

你好我基本上和你一样尝试。使用phonegap在谷歌地图上进行地理定位。

你可以澄清一下: “顺便说一句,找不到用户的协同设备,找到它们的唯一方法(我发现)是使用telnet进行地理修复,但我希望手机找到合作伙伴,而不是我。”

显然PC没有GPS,所以要在你的模拟器上工作,你需要模仿(假)GPS协议。

您是否已将Google地图添加到白名单权限?

链接到我的主题Phone gap geolocation with google maps 虽然我正在使用其他代码,但我正在尝试实现相同的目标。

答案 1 :(得分:0)

请注意您使用Google Api SDK而非Android SDK。 检查eclipse你的构建路径=&gt;配置构建路径=&gt;点击Android并选择Google Api 2.3.3 / 10。