HTML5 Geolocation watchPosition() API
描述
watchPosition方法可以获取有关设备当前地理位置的定期更新。位置以一组地理坐标及其有关方向和速度的信息表达。
位置信息以Position对象返回。每次更新都会返回一个新的Position对象。
语法
下面是此方法的语法 –
watchPosition(showLocation, ErrorHandler, options);
参数
以下是参数的详细信息 –
- showLocation − 这指定检索位置信息的回调方法。使用Position对象相应的对象异步调用此方法,该对象存储返回的位置信息。
-
ErrorHandler − 这是可选参数,指定异步调用处理错误时调用的回调方法。使用存储返回的错误信息的PositionError对象调用此方法。
-
options − 这是可选参数,指定检索位置信息的一组选项。您可以指定(a)返回位置信息的准确性(b)检索位置信息的超时时间和(c)使用缓存的位置信息。
返回值
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>
这将生成以下结果 –