地理位置 watchPosition() API



HTML 地理位置 watchPosition() 方法定期檢索裝置當前地理位置的更新。位置表示為一組地理座標,以及關於航向和速度的資訊。

位置資訊以 Position 物件返回。每次更新都返回一個新的 Position 物件。

語法

HTML 地理位置 watchPosition() 方法的語法如下:

watchPosition(showLocation, ErrorHandler, options);

引數

HTML 地理位置 watchPosition() 方法接受三個引數:

  • showLocation − 指定檢索位置資訊的回撥方法。此方法會非同步呼叫,並帶有對應於Position物件的 Object,其中儲存了返回的位置資訊。

  • ErrorHandler − 此可選引數指定在處理非同步呼叫時發生錯誤時呼叫的回撥方法。此方法會呼叫帶有PositionError物件的,其中儲存了返回的錯誤資訊。

  • options − 此可選引數指定一組用於檢索位置資訊的選項。您可以指定 (a) 返回位置資訊的精度 (b) 檢索位置資訊的時間超時 (c) 使用快取的位置資訊。

返回值

watchPosition() 方法返回與非同步呼叫關聯的唯一事務 ID(數字)。使用此 ID 可以取消 watchPosition 呼叫並停止接收位置更新。

示例

在下面的程式碼中,我們使用 watchPosition() 方法來自動更新使用者裝置的位置。

<!DOCTYPE HTML>

<head>
   <html>
   
      <script type = "text/javascript">
         var watchID;
         var geoLoc;
         
         function showLocation(position) {
            var latitude = position.coords.latitude;
            var longitude = position.coords.longitude;
            alert("Latitude : " + latitude + " Longitude: " + longitude);
         }
         
         function errorHandler(err) {
            if(err.code == 1) {
               alert("Error: Access is denied!");
            } else if( err.code == 2) {
               alert("Error: Position is unavailable!");
            }
         }
         
         function getLocationUpdate(){
            
            if(navigator.geolocation){
               
               // timeout at 60000 milliseconds (60 seconds)
               var options = {timeout:60000};
               geoLoc = navigator.geolocation;
               watchID = geoLoc.watchPosition(showLocation, errorHandler, options);
            } else {
               alert("Sorry, browser does not support geolocation!");
            }
         }
      </script>
   </head>
   <body>
   
      <form>
         <input type = "button" onclick = "getLocationUpdate();" value = "Watch Update"/>
      </form>
      
   </body>
</html>

執行上述 HTML 程式碼後,將顯示一個名為“監視更新”的按鈕,如果單擊它,將提示使用者裝置的緯度和經度。

html_geolocation.htm
廣告