watchPosition方法检索有关设备当前地理位置的定期更新。该位置表示为一组地理坐标以及有关航向和速度的信息。

位置信息在Position对象中返回。每次更新都会返回一个新的Position对象。

watchPosition() - 语法

这是此方法的语法-

watchPosition(showLocation, ErrorHandler, options);

这是参数的详细信息-

  • showLocation    - 这指定了检索位置信息的回调方法。该方法与与 Position 对象相对应的对象异步调用,该对象存储返回的位置信息。

  • ErrorHandler    - 此可选参数指定在处理异步调用时发生错误时调用的回调方法。该方法由 PositionError 对象调用,该对象存储返回的错误信息。

  • options               - 此可选参数指定一组用于检索位置信息的选项。

watchPosition() - 返回值

watchPosition方法返回与异步调用关联的唯一事务ID(数字)。使用此ID取消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>

这将产生以下输出-

参考链接

https://www.learnfk.com/html5/geolocation-watchposition.html