HTML5 Geolocation API 封裝在 navigator.geolocation 屬性裏,各種接口即是 navigator.geolocation 對象的方法。
1、getCurrentPosition()
getCurrentPosition 用來獲取用戶當前的位置信息,該方法帶有三個參數:
2、errorCallback:獲取用戶位置信息失敗時的回調函數
3、positionOptions:可選。獲取用戶位置信息的配置參數
i)、successCallback
1、accuracy:精確度
2、latitude:緯度
3、longitude:經度
4、altitude:海拔
5、altitudeAcuracy:海拔高度的精確度
6、heading:朝向
7、speed:
ii)、errorCallback
2、code:錯誤代碼。
其中錯誤代碼包括以下四個值:
0 — UNKNOW_ERROR:表示不包括在其它錯誤代碼中的錯誤,這裏可以在 message 中查找錯誤信息
1 — PERMISSION_DENIED:表示用戶拒絕瀏覽器獲取位置信息的請求
2 — POSITION_UNAVALIABLE:表示網絡不可用或者連接不到衛星
3 — TIMEOUT:表示獲取超時。必須在options中指定了timeout值時纔有可能發生這種錯誤
iii)、positionOptions
1、enableHighAcuracy — 布爾值: 表示是否啓用高精確度模式,如果啓用這種模式,瀏覽器在獲取位置信息時可能需要耗費更多的時間。
2、timeout — 整數: 表示瀏覽需要在指定的時間內獲取位置信息,否則觸發errorCallback。
3、maximumAge — 整數/常量: 表示瀏覽器重新獲取位置信息的時間間隔。
2、watchPosition()
watchPosition 的三個參數和 getCurrentPosition 完全一樣,不同的是 watchPosition 是設計用來實時獲取\檢測用戶的位置信息。它像一個追蹤器一樣時刻監視用戶的位置,只要發生變化,瀏覽器就會觸發 watchPosition 的回調函數。成功則觸發 successCallback ,否則觸發 errorCallback。
另外和 getCurrentPosition 不同的地方就是有返回值。類似於延遲函數/間隔函數(setTimeout/setInterval)那樣,返回一個 ID ,可以被清除掉。這裏是用接下來介紹的 clearWatch 清除。
3、clearWatch()
接受一個 watchPosition 返回的 ID,功能是清除對用戶位置的循環監視。