手机获取定位

这几天在项目里面需要手机获取当前位置,到现在我把自己碰到的坑在这里分享一下,希望可以减小第一次使用定位的小伙伴们减少一点儿疑惑:
var geolocation = navigator.geolocation;
if(geolocation){
navigator.geolocation.getCurrentPosition(showPosition, showError,{
// 指示浏览器获取高精度的位置,默认为false
enableHighAccuracy: true,
// 指定获取地理位置的超时时间,默认不限时,单位为毫秒
timeout: 1000,
// 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
maximumAge: '',
});

}else{
location.href='search.html';
}
navigator.geolocation.getCurrentPosition 里面的三个参数,成功回调是必须的,后面的失败回调和参数配置是非必须的,但是如果想要失败的回调起作用,就必须把参数配置写上,不然失败回调不起作用!
function locationError(error){

switch(error.code) { 
 case error.PERMISSION_DENIED: 
 alert("定位失败,用户拒绝请求地理定位");  
 break; 
 case error.POSITION_UNAVAILABLE: 
 alert("定位失败,位置信息是不可用"); 
 break; 
 case error.TIMEOUT: 
 alert("定位失败,请求获取用户位置超时"); 
 break; 
 case error.UNKNOWN_ERROR: 
alert("定位失败,定位系统失效"); 
 break; 
} 

}
locationError里面的函数有失败原因的参数。可以弹出去。(获取的位置距离自己实际位置有个几千米远。。。)

还有h5里面的方法也可以实现定位功能:
plus.geolocation.getCurrentPosition(successCB, errorCB);
function successCB(){//成功的回调函数
alert(11)
};
function errorCB(){//失败的回调函数
alert(22)
};
(这个定位更加准确,并且非常的好用,不过在ios里面需要把定位获取的经纬度若是想要在高德地图上显示,就会出现问题,需要转化为高德经纬度)

你可能感兴趣的:(手机获取定位)