Cordova 地理位置无效的Phonegap android google地图
我正在使用jquery mobile开发一个phonegap应用程序。我没有得到当前位置。在设备上,未启动就绪OnSuces或onError功能。我想是的,只是我不知道位置。这是我的密码Cordova 地理位置无效的Phonegap android google地图,cordova,Cordova,我正在使用jquery mobile开发一个phonegap应用程序。我没有得到当前位置。在设备上,未启动就绪OnSuces或onError功能。我想是的,只是我不知道位置。这是我的密码 function onDeviceReady() { var options = { frequency: 3000 }; watchID = navigator.geolocation.watchPosition(onSuccess, onError, options)
function onDeviceReady() {
var options = { frequency: 3000 };
watchID = navigator.geolocation.watchPosition(onSuccess, onError, options); }
function onSuccess(position){
var minZoomLevel = 6;
map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: minZoomLevel;
center: new google.maps.LatLng(position.coords.latitude,position.coords.longitude),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: new google.maps.LatLng(position.coords.latitude,position.coords.longitude),
map: map,
});
}
function onError() {
alert("Sorry,we cann't find your location");
}
**带地理位置的Phonegap android谷歌地图**
**首先在html页面中添加文件**
外接程序javascript
$(文档).ready(函数(){
navigator.geolocation.getCurrentPosition(onSuccess,onError);
});
成功时的功能(位置){
纬度=位置坐标纬度;
lng=位置坐标经度;
var secheltLoc=新的google.maps.LatLng(lat,lng);
var myMapOptions={
缩放:16
,中心:secheltLoc
,mapTypeId:google.maps.mapTypeId.HYBRID
};
var theMap=new google.maps.Map(document.getElementById(“Map_canvas”),myMapOptions);
var image=“img/map\u pin.png”
var marker=new google.maps.marker({
地图:主题地图,
可拖动:错误,
位置:新google.maps.LatLng(lat,lng),
可见:对,
图标:图像,
标题:标题//标题
});
var infowindow=new google.maps.infowindow({
内容:contentString
});
信息窗口。打开(地图、标记);
google.maps.event.addListener(标记“单击”,函数(e){
信息窗口。打开(地图、标记);
});
}
/**OneError回调接收POSITIONERROR对象**/
函数onError(错误)
{
开关(错误代码)
{
case error.PERMISSION\u DENIED:警报(MSG\u PERMISSION\u DENIED);
打破
案例错误。位置不可用:警报(消息位置不可用);
打破
case error.TIMEOUT:警报(消息超时);
打破
违约:
警报(消息未知);
打破
}
}
我正在开发的一些应用程序也有同样的问题。这个问题/解决方案是某些最新版本phonegap上的android设备所特有的。
我现在记不起是在哪里找到的,但它对我很有用:
不要指定onError回调,将调用包装在try-catch中,并使用它来处理onError场景
try{
navigator.geolocation.getCurrentPosition(function (position) {
// If the position can be found send the current location to order the deals
doSomething(position.coords.longitude, position.coords.latitude);
});
}
catch(err){ doSomethingWithoutCoordinates(); }
似乎当你给phonegap一个错误选项时,它没有尝试成功就接受了
免责声明:我不能确定是否会调用catch,这对我来说很有效,而且总是会给我一个坐标值,因此您可能希望在将其投入生产之前进行彻底测试。请尝试此方法
var options = { maximumAge: 3000, timeout: 3000, enableHighAccuracy: true };
navigator.geolocation.getCurrentPosition(success, navFail,options);
如果您使用的是android,则必须使用“EnableHighAccurance:true”
谢谢好的,这对我来说很有用:
phonegap本地插件add org.apache.cordova.geolocation
)navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout: 10000, enableHighAccuracy: true});
在某些模拟器中,您需要将EnableHighAccurance设置为false,所以如果仍然不起作用,请尝试 geo fix -122.4 37.78
如果你关闭应用程序,你需要重新发送地理位置,因此如果它不起作用,只需在打开应用程序之后,在超时事件触发之前运行geo-fix
命令。请像这样使用(确保你的设备位置设置为打开)
当我这样使用它时,它可以在IOS上工作,但不能在Android设备上工作
{ maximumAge: 3000, timeout: 3000, enableHighAccuracy: true }
我们已经试过了。。但它不起作用。。。昨天谷歌安卓系统出现了问题。因为相同的代码在ios中运行良好…检查设备或模拟器中的GPS服务打开或关闭。如果我在这里遇到相同的问题,您是否解决了您的问题?
geo fix -122.4 37.78
navigator.geolocation.getCurrentPosition(onSuccess,onError,{enableHighAccuracy:true});
{ maximumAge: 3000, timeout: 3000, enableHighAccuracy: true }