剛接觸前端,剛知道 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;
}
}
});