HTML5 Geolocation API

HTML5 Geolocation API 封裝在 navigator.geolocation 屬性裏,各種接口即是 navigator.geolocation 對象的方法。

 

1、getCurrentPosition() 


getCurrentPosition 用來獲取用戶當前的位置信息,該方法帶有三個參數:

         1、successCallback:成功獲取用戶位置信息後的回調函數
         2、errorCallback:獲取用戶位置信息失敗時的回調函數
         3、positionOptions:可選。獲取用戶位置信息的配置參數

i)、successCallback

      successCallback 函數帶有一個參數,對象字面量格式,表示獲取到的用戶位置數據。該對象包含兩個屬性 coords 和 timestamp。其中 coords 屬性包含以下7個值:
        1、accuracy:精確度
        2、latitude:緯度
        3、longitude:經度
        4、altitude:海拔
        5、altitudeAcuracy:海拔高度的精確度
        6、heading:朝向
        7、speed:

ii)、errorCallback

       和 successCallback 函數一樣帶有一個參數,對象字面量格式,表示返回的錯誤代碼。它包含以下兩個屬性:
           1、message:錯誤信息
           2、code:錯誤代碼。
       其中錯誤代碼包括以下四個值:
           0 — UNKNOW_ERROR:表示不包括在其它錯誤代碼中的錯誤,這裏可以在 message 中查找錯誤信息
           1 — PERMISSION_DENIED:表示用戶拒絕瀏覽器獲取位置信息的請求
           2 — POSITION_UNAVALIABLE:表示網絡不可用或者連接不到衛星
           3 — TIMEOUT:表示獲取超時。必須在options中指定了timeout值時纔有可能發生這種錯誤

iii)、positionOptions

       positionOptions 的數據格式爲JSON,有三個可選的屬性:
        1、enableHighAcuracy — 布爾值: 表示是否啓用高精確度模式,如果啓用這種模式,瀏覽器在獲取位置信息時可能需要耗費更多的時間。
        2、timeout — 整數: 表示瀏覽需要在指定的時間內獲取位置信息,否則觸發errorCallback。
        3、maximumAge — 整數/常量: 表示瀏覽器重新獲取位置信息的時間間隔。
 

 2、watchPosition() 


       watchPosition 的三個參數和 getCurrentPosition 完全一樣,不同的是 watchPosition 是設計用來實時獲取\檢測用戶的位置信息。它像一個追蹤器一樣時刻監視用戶的位置,只要發生變化,瀏覽器就會觸發 watchPosition 的回調函數。成功則觸發 successCallback ,否則觸發 errorCallback。

       另外和  getCurrentPosition 不同的地方就是有返回值。類似於延遲函數/間隔函數(setTimeout/setInterval)那樣,返回一個 ID ,可以被清除掉。這裏是用接下來介紹的 clearWatch 清除。

 

3、clearWatch() 


       接受一個 watchPosition 返回的 ID,功能是清除對用戶位置的循環監視。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章