watchPosition(
位置情報取得成功Callback関数,
位置情報取得失敗Callback関数(省略可),
位置情報取得オプション(省略可)
);
watchPositionメソッドは、getCurrentPositionと基本的に同じですが、getCurrentPositionが1回だけ位置情報を通知するのに対し、watchPositionは位置が変更される度に通知されるというのが違います。また、戻り値に位置情報の継続取得を中止するためのIDが返却されるのも異なる点です。
各オブジェクト、プロパティ等の意味は「現在位置を取得する」を参照して下さい。
<div id="location2"></div>
<input type="button" onclick="stopWatchPosition();" value="ボタンを押すと位置情報の継続取得を中止します"></input>
<script language="javascript" type="text/javascript">
var stopID;
if (!navigator.geolocation) {
var l = document.getElementById("location2");
l.innerHTML = "このブラウザは位置情報をサポートしていません。";
} else {
stopID = navigator.geolocation.watchPosition(locationGetSuccess2
, locationGetError2,
{
enableHighAccuracy:true,
maximumAge:0,
timeout:1000
});
}
function locationGetSuccess2(position) {
var l = document.getElementById("location2");
var now = new Date();
l.innerHTML = "緯度:" + position.coords.latitude + "<br />"
+ "経度:" + position.coords.longitude + "<br />"
+ "Time:" + now.getHours() + ":" + now.getMinutes() + ":"
+ now.getSeconds() + "<br />";
}
function locationGetError2(error) {
var l = document.getElementById("location2");
switch(error.code) {
case error.UNKNOWN_ERROR:
l.innerHTML = "UNKNOWN_ERROR:" + error.message;
break;
case error.PERMISSION_DENIED:
l.innerHTML = "PERMISSION_DENIED:";
break;
case error.POSITION_UNAVAILABLE:
l.innerHTML = "POSITION_UNAVAILABLE:";
break;
case error.TIMEOUT:
l.innerHTML = "TIMEOUT:";
break;
}
}
function stopWatchPosition() {
navigator.geolocation.clearWatch(stopID);
}
</script>
0 件のコメント:
コメントを投稿