刚接触前端,刚知道 HTML5 的时候,我一直以为 浏览器定位的 API 是 HTML5 标准下的东西,直到后来才知道,有些东西并不是 HTML5 定义的玩意。
比如说:
1、SVG
2、浏览器定位
3、webSocket
....
暂时就记得这仨。
好了不废话,继续讨论浏览器定位,嗯,其实,浏览器定位是比较废柴的,定位精确度啥的,只能呵呵,不过在移动端精确度相对好很多。想想其实也没啥错,如果 pc 定位很精确的话,估计群友就要顺着网线过来打人了,所以,为了安全考虑,你懂的。
恩我也没啥要说的了,老规矩,上代码:
/**
* 浏览器定位
*/
(function() {
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(getPositionSuccess, getPositionError, {
// 指示浏览器获取高精度的位置,默认为false
enableHighAcuracy: true,
// 指定获取地理位置的超时时间,默认不限时,单位为毫秒
timeout: 5000,
// 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
maximumAge: 3000
});
}else{
console.log("浏览器无法获取您的位置");
}
function getPositionSuccess(coords){
console.log("获取成功");
console.log(arguments.length);
console.log(coords);
for(var obj in arguments){
console.log(arguments[obj]);
}
}
function getPositionError(error){
console.log("获取失败");
for(var obj in arguments){
console.log(arguments[obj]);
}
switch(error.code) {
case error.TIMEOUT:
console.log("请求超时,请再次定位!");
break;
case error.POSITION_UNAVAILABLE:
console.log('无法检测您的位置信息!');
break;
case error.PERMISSION_DENIED:
console.log('请您开启浏览器定位功能,获取您的位置信息!');
break;
case error.UNKNOWN_ERROR:
console.log('定位异常!');
break;
}
}
});