第十一章 獲取地理位置信息-《HTML5+CSS3權威指南》

本章主要是介紹geolocation API來獲取用戶的地理位置信息。附帶頁面上使用Google地圖的基本方法(這我就不講了,google有很好的API使用說明書)。java

Geolocation是window.navigator對象新增長的屬性。Geolocation API存在三個方法。git

1.獲取地理位置緩存

2.持續監視當前地理位置的信息服務器

3.中止獲取用戶的地理位置信息網絡

獲取當前地理位置信息

1.但是使用getCurrentPosition方法來獲取用戶地理位置信息,使用方法是:google

void getCurrentPosition(onSuccess, onError,options);

onSuccess是返回獲取地理位置成功時作什麼;onError是返回獲取地理位置失敗時;oprtions是一些可選屬性(書上這麼說的,我知道的還有一個超時的屬性)。
/* 一個完整的獲取地理位置信息代碼段 */
navigator.geolocation.getCurrentPosition(
        /*成功獲取片段*/
	function(position){
		var latitude = position.coords.latitude;//獲取當前位置的緯度
		var longitude = position.coords.longitude;//獲取當前位置的精度
		document.getElementById('map').value = '緯度:'+latitude+'精度:'+longitude;
	},
    /*獲取地質位置錯誤片段*/
	function(error){
		var errorType={1:'位置服務器拒絕',2:'獲取不到位置',3:'獲取信息超時'};
                   alert(errorType[error.code]+":獲取地理位置錯誤,請檢查您的網絡是否通暢!");
	},
     /* 超時處理*/
	{
     /*設置緩存有效時間是2分鐘,單位是毫秒*/
		maximumAge:60*1000*2,
     /*5秒內沒有回獲取信息視爲超時*/
		timeout:5000
	}
);

若是獲取地理位置成功的話,position有這樣幾個屬性:spa

latitude 當前地理位置的緯度code

longitude 當前地理位置的精度對象

altitude 當前海拔高度  不能獲取時爲nullip

accuracy 獲取的緯度或經度的精度(以米爲單位)

altitudeAccurancy 獲取海拔高度的精度(以米爲單位)

heading 設備的前進方向。用面朝正北方的順時針旋轉角度來表示(不能獲取時爲null)

speed 設備的前進速度(單位:米/秒)

timestamp 獲取地理時間

若是獲取地理位置失敗的話,Error對象有如下屬性:

code屬性有三個值(1.用戶拒絕了位置服務 2.獲取不到位置信息 3.獲取信息超時錯誤)

(還沒弄明白,後面是書的原文)message屬性:包含了一個字符串,在該字符串中包含了錯誤信息

再來看看最後一個能夠省略參數包含那些屬性

enableHighAccuracy 要求高精度的地理位置,這個參數在不少設備上沒有用,因此大多數把設爲默認

maximumAge 對地理位置的獲取操做作一個超時限制(單位毫秒)

持續監視當前地理位置信息

使用watchPosition方法來持續獲取用戶信息當前地理位置,它會按期自動獲取,該方法定義以下:

int watchCurrentPosition(pnSuccess,onError,options);

該方法三個參數的說明和使用方法和getCurrentPosition方法同樣。返回一個數字,這個數字的使用方法與javasctipt腳本中setInterval方法的返回值參數相似。

中止獲取用戶的地理位置信息

能夠使用

vodi clearWatch(watchId);
watchId是調用上面的getCurrentPosition方法監視時返回的參數。
相關文章
相關標籤/搜索