HTML 地理位置 watchPosition() 方法检索有关设备当前地理位置的定期更新。位置表示为一组地理坐标以及有关航向和速度的信息。
位置信息在 Position 对象中返回。每次更新都会返回一个新的 Position 对象。
语法
HTML Geolocation watchPosition() 方法的语法如下:
watchPosition(showLocation, ErrorHandler, options);
参数
HTML Geolocation watchPosition() 方法接受三个参数 -
- showLocation - 这指定了检索位置信息的回调方法。此方法与与 Position 对象对应的对象异步调用,该对象存储返回的位置信息。
- 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代码时,会显示一个名为“监视更新”的按钮,如果单击它,将提示用户设备的纬度和经度。