我使用Cordova 3.5中的地理定位插件。我的编码如下:
navigator.geolocation.getCurrentPosition(function(pos) {
var lat = pos.coords.latitude;
var lng = pos.coords.longitude;
alert("lat : "+lat+" lng : " +lng");
});
我正在徘徊这个代码是否可以在没有Internet连接和GPS的情况下获得lat lng。如果没有,有没有解决办法呢?谢谢您帮忙。
答案 0 :(得分:2)
正如@jcesarmobile在此指出Cordova geolocation plugin not getting location from GPS for Android:
他们正在使用HTML5地理位置实现而不是本机 码。他们删除了版本0.3.7的android java代码 插件
{{1}}
希望这有帮助
答案 1 :(得分:1)
如果没有互联网连接,仍然会有Cell ID,您连接的设备的RFID和MAC地址等来源(例如WIFI路由器,蓝牙)
代码应该可以工作,但是你可以添加一些东西(Eventlistener和错误提醒,以防无法找到位置):
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
function onSuccess(pos) {
var lat = pos.coords.latitude;
var lng = pos.coords.longitude;
alert("lat : " + lat + " lng : " + lng);
}
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
我知道,例如Google位置API使用缓存来获取最新的已知位置,可以随时读取。 我不确定科尔多瓦是否也使用类似的东西,但它可能是。
答案 2 :(得分:1)
检查地理位置是否已正确安装
重新启动手机(愚蠢的解决方案,但有时会有效。我曾经面对过一次)
检查您的地理位置权限&设备
中的设置已打开使用此代码进行测试
$('#test').append('<a href="#" onclick="tests(randomString(5,'+item.id+'))"><img src="http://www.test.com/images/'+item.image+'"/></a>');
如果您正在使用android,请尝试使用eclipse logcat获取错误。
在iOS上,这将始终以某种方式工作。如果插件失败,将使用浏览器自己的Geolocation API。虽然有后备的不良副作用:
弹出的权限对话框在标题中有html文件的名称,而不是应用名称 只有在应用程序运行时,授权权限才会保留 在Android上,只有在app / AndroidManifest.xml中设置了正确的权限才能生效:
options = { enableHighAccuracy: true };
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);