使用HTML5 + PhoneGap。 在我的应用程序中,我需要通过Geolocation来获取纬度和经度。
当我搜索时,我得到了来自PhoneGap Website
的示例代码document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
alert('deviceready');
//navigator.geolocation.getCurrentPosition(onSuccess, onError);
navigator.geolocation.getCurrentPosition(onSuccess);
}
// 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');
}
但它不起作用!! 它总是显示观看地理位置...... 但是没有加载详细信息。 我已经搜索了这个问题,但我没有得到正确的解决方案。
我发现这里发布了同样的问题,但解决方案并未解决这个问题:(
如何使用PhoneGap获取纬度和经度详细信息?
任何人都可以帮助我???
答案 0 :(得分:0)
一年前我遇到了类似的问题,我的解决方案是重新启动手机 - 当时是One X Android 4.0。不记得手机版本,但这是我不应该使用phonegap的完美例子。
如果这不起作用,问题可能出在高精度选项上:http://docs.phonegap.com/en/3.1.0/cordova_geolocation_geolocation.md.html#Geolocation 尝试将enableHighAccuracy切换为false / true。
答案 1 :(得分:0)
某些Android设备和模拟器仅支持高或低GPS准确度。
尝试以低精度和高精度运行代码。
function onDeviceReady() {
var options = { enableHighAccuracy: true }; // also try with false.
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
}
如果这不起作用,请尝试调整选项中的超时,最后可能还没有正确设置Android项目的GPS权限。检查应用清单,看看您执行或未设置的权限。
答案 2 :(得分:0)
我认为原因是我们总是使用浏览器的html5实现而不是本机。尝试确保使用cordova本机函数来定位位置。