-
再生ボタン:トラッキングの開始
- 初期(init)・一時停止(pause)状態のときは、最初のポイントに移動する。
- すでに再生(play)状態の場合は何もしない。(二重起動防止)
- 地図移動処理(moveMapOnGpsData())を一定周期で起動するようにタイマー登録する。
$('#btnConsolePlay').live('click',function(){
if (gcurGpsDataPlayStatus == 'play') {
return; // すでに再生中の場合は何もしない
} else if (gcurGpsDataPlayStatus == 'init' || gcurGpsDataPlayStatus == 'stop'){
moveMapToFirst(); // 最初のポイントに移動
}
//alert('play');
// タイマー設定:1000ミリ秒ごとにmoveMapOnGpsData()をコール
gTimerId = setInterval('moveMapOnGpsData()',1000);
gcurGpsDataPlayStatus = 'play'
});
var gcurGpsDataIdx = 0; // どのGPSデータを地図の中心にするかのカウンタ
function moveMapOnGpsData(){
gcurGpsDataIdx++;
if (gcurGpsDataIdx < gGpsData.length) {
gMap.panTo(new google.maps.LatLng(
gGpsData[gcurGpsDataIdx].lat, gGpsData[gcurGpsDataIdx].lon)); // 地図中心を移動
showGridGpsInfoP(gcurGpsDataIdx); // 当該ポイントの情報を情報パネルに表示
} else { // 最後のポイントに到達
clearInterval(gTimerId); // タイマー解除
gcurGpsDataIdx = 0; // カウンタのクリア
alert('max');
}
}
停止ボタン:トラッキングの停止
- 再生・一時停止状態「以外」のときは何もしない。
- タイマーを解除する。カウンターをクリアする(=次回再生時は最初のポイントからになる)。
$('#btnConsoleStop').live('click',function(){
if (gcurGpsDataPlayStatus != 'play' && gcurGpsDataPlayStatus != 'pause') { return; }
clearInterval(gTimerId); // タイマー解除
gcurGpsDataIdx = 0; // カウンタのクリア(次回再生時は最初のポイントから)
alert('stop');
gcurGpsDataPlayStatus = 'stop';
});
一時停止ボタン:トラッキングの中断
- 再生状態「以外」のときは何もしない。
- タイマーを解除する。カウンタは保持する。
$('#btnConsolePause').live('click',function(){
if (gcurGpsDataPlayStatus != 'play') {
return; // 再生中以外の場合は何もしない
}
clearInterval(gTimerId); // タイマー解除(再開時は新規設定するのでクリアする)
alert('pause');
gcurGpsDataPlayStatus = 'pause';
});