最悲剧的HTML5 API : Position地理位置
Position API接口
注意:由于geolocation的位置信息來源包括GPS,IP地址,wifi,藍(lán)牙的MAC地址GSM/CDMA 卡 ID 等。移動(dòng)設(shè)備優(yōu)先使用GPS獲取位置,但是對于wifi和IP定位,瀏覽器本身不能直接解析,它只能手機(jī)wifi和ip的信息,然后通過請求位置信息服務(wù)接口來獲取,然后主流瀏覽器都是使用Google提供的地理位置查詢服務(wù)。通過抓包我們可以知道瀏覽器會請求www.googleapis.com來獲取位置信息,那么問題來了,谷歌撤出中國以后,很多Google提供的服務(wù)我們無法使用,其中就包括了地理位置查詢服務(wù),悲劇!
不過我們還是有必要來學(xué)習(xí)一下這個(gè)最受開發(fā)者青睞的API。
方法1:getCurrentPosition() 獲取用戶當(dāng)前的位置信息,有三個(gè)參數(shù),1.成功后的回調(diào)函數(shù),2.失敗后的回調(diào)函數(shù),3,設(shè)置參數(shù)的對象。
方法2:watchCurrentPostion() 獲取用戶的位置信息,并繼續(xù)返回用戶移動(dòng)時(shí)的更新位置,函數(shù)會返回一個(gè) ID,唯一地標(biāo)記該位置監(jiān)視器。您可以將這個(gè) ID 傳給 clearWatch() 函數(shù)來停止監(jiān)視用戶位置。
方法3:clearWatch(id) 取消watchCurrentPostion,參數(shù)為watchID。
getCurrentPosition()使用案例
if(navigator.geolocation){
//可用
//設(shè)置配置參數(shù)
getLocationOptions = {
// 指示瀏覽器獲取高精度的位置,默認(rèn)為false
enbaleHighAcuracy:true,
// 指定獲取地理位置的超時(shí)時(shí)間,默認(rèn)不限時(shí),單位為毫秒
timeout:5000,
// 最長有效期,在重復(fù)獲取地理位置時(shí),此參數(shù)指定多久再次獲取位置。
maximumAge:300
};
navigator.geolocation.getCurrentPosition(getLocationSuccess,getLocationError,getLocationOptions);
}
else{
//不可用
alert('你的瀏覽器不支持geolocation API的使用');
}
//成功后返回對象,包含位置信息
function getLocationSuccess(position){
console.log('緯度:'+position.coords.latitude);
console.log('經(jīng)度:'+position.coords.longitude);
console.log('位置精度:'+position.coords.accuracy);
console.log('海拔:'+position.coords.altitude);
console.log('海拔精度:'+position.coords.altitudeAccuracy);
console.log('方向(正北開始以度計(jì)):'+position.coords.heading);
console.log('速度,以米/每秒計(jì)'+position.coords.speed);
console.log('響應(yīng)的日期/時(shí)間'+position.timestamp);
}
//失敗后返回對象,包含失敗信息
function getLocationError(error){
switch (error.code){
case error.PERMISSION_DENIED : alert('用戶拒絕瀏覽器獲取位置信息');break;
case error.TIMEOUT : alert('請求超時(shí)!'); break;
case error.POSITION_UNAVAILABLE : alert('無法檢測到你的位置'); break;
}
}
watchCurrentPostion()使用案例
var watchID = navigator.geolocation.watchPosition(function(position) { /*.....*/});
clearWatch(id)使用案例
navigator.geolocation.clearWatch(watchID);
總結(jié)
以上是生活随笔為你收集整理的最悲剧的HTML5 API : Position地理位置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [云炬创业基础笔记]第十章企业的利润计划
- 下一篇: [云炬创业基础笔记]第十章企业的利润计划