HTML5 使用HTML5地理位置定位功能
定位功能(Geolocation )是HTML5的新特性,因此只能在支持HTML5的瀏覽器上運(yùn)行,特別是手持設(shè)備(如iphone)的地理定位更加精確。首先我們要檢測(cè)用戶設(shè)備上的瀏覽器是否支持地理定位,如果支持,則獲取地理信息。這個(gè)特性可能侵犯用戶的隱私,除非用戶同意,否則用戶位置信息是不可用的。所以在訪問該應(yīng)用時(shí),會(huì)提示是否允許地理定位,選擇允許即可,JS代碼如下:
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition,showError);
}else{
alert("瀏覽器不支持地理定位。");
}
}
從上面的代碼可以知道,如果用戶設(shè)備支持地理定位,則運(yùn)行g(shù)etCurrentPosition()方法。如果getCurrentPosition()運(yùn)行成功,則向參數(shù)showPosition中規(guī)定的函數(shù)返回一個(gè)coordinates對(duì)象,getCurrentPosition()方法的第二個(gè)參數(shù)showError用于處理錯(cuò)誤,它規(guī)定當(dāng)獲取用戶位置失敗時(shí)運(yùn)行的函數(shù)。
我們先來看函數(shù)showError(),它規(guī)定獲取用戶地理位置失敗時(shí)的一些錯(cuò)誤代碼處理方式,JS代碼如下:
function showError(error){
switch(error.code) {
case error.PERMISSiON_DENIED;
alert("定位失敗,用戶拒絕請(qǐng)求地理定位");
break;
case error.POSITION_UNAVAILABLE:
alert("定位失敗,位置信息是不可用");
break;
case error.TIMEOUT;
alert("定位失敗,請(qǐng)求獲取用戶位置超時(shí)");
break;
case error.UNKN0WN_ERR0R:
alert("定位失敗,定位系統(tǒng)失效");
break;
}
}
再來看函數(shù)showPosition(),調(diào)用coords的latitude和longitude即可獲取到用戶的諱度和經(jīng)度,JS代碼如下:
function showEosition(position){
var lat = position.coords.latitude; //緯度
var lag = positdon.coords.longitude; //經(jīng)度
alert('緯度:'+lat+',經(jīng)度:'+lag);
}
點(diǎn)擊加載更多評(píng)論>>