var city;
function getCity() {
//判斷瀏覽器是否支持geolocation
if(navigator.geolocation){
// getCurrentPosition支持三個參數(shù)
// getSuccess是執(zhí)行成功的回調(diào)函數(shù)
// getError是失敗的回調(diào)函數(shù)
// getOptions是一個對象睹晒,用于設(shè)置getCurrentPosition的參數(shù)
// 后兩個不是必要參數(shù)
var getOptions = {
//是否使用高精度設(shè)備蛾狗,如GPS粱檀。默認是true
enableHighAccuracy:true,
//超時時間抖韩,單位毫秒,默認為0
timeout:50000,
//使用設(shè)置時間內(nèi)的緩存數(shù)據(jù),單位毫秒
//默認為0镜硕,即始終請求新數(shù)據(jù)
//如設(shè)為Infinity运翼,則始終使用緩存數(shù)據(jù)
maximumAge:0
};
//成功回調(diào)
function getSuccess(position){
// getCurrentPosition執(zhí)行成功后,會把getSuccess傳一個position對象
// position有兩個屬性兴枯,coords和timeStamp
// coords是一個對象血淌,包含了地理位置數(shù)據(jù)
console.log(position.coords.latitude);
var gg_lon = position.coords.longitude;
var gg_lat =? position.coords.latitude;
// 估算的經(jīng)度
console.log(position.coords.longitude);
// 所得經(jīng)度和緯度的估算精度,以米為單位
console.log(position.coords.accuracy);
var gc = new BMap.Geocoder();
var pointAdd = new BMap.Point(gg_lon, gg_lat);
gc.getLocation(pointAdd, function(rs){
// 百度地圖解析城市名
city = rs.addressComponents.city;
alert(city)
localStorage.clear();
//或者任何你想要的其他信息
// if(localStorage){
//? ? localStorage.clear();
//? ? localStorage.setItem('mycity',city)
//? ? }
})
}
//失敗回調(diào)
function getError(error){
// 執(zhí)行失敗的回調(diào)函數(shù)财剖,會接受一個error對象作為參數(shù)
// error擁有一個code屬性和三個常量屬性TIMEOUT悠夯、PERMISSION_DENIED、POSITION_UNAVAILABLE
// 執(zhí)行失敗時躺坟,code屬性會指向三個常量中的一個沦补,從而指明錯誤原因
switch(error.code){
case error.TIMEOUT:
console.log('超時');
break;
case error.PERMISSION_DENIED:
console.log('用戶拒絕提供地理位置');
break;
case error.POSITION_UNAVAILABLE:
console.log('地理位置不可用');
break;
default:
break;
}
}
navigator.geolocation.getCurrentPosition(getSuccess, getError, getOptions);
// watchPosition方法一樣可以設(shè)置三個參數(shù)
// 使用方法和getCurrentPosition方法一致,只是執(zhí)行效果不同咪橙。
// getCurrentPosition只執(zhí)行一次
// watchPosition只要設(shè)備位置發(fā)生變化夕膀,就會執(zhí)行
var watcher_id = navigator.geolocation.watchPosition(getSuccess, getError, getOptions);
//clearwatch用于終止watchPosition方法
navigator.geolocation.clearWatch(watcher_id);
}
}
getCity();