Google Mapで複数マーカーを取り扱う際のTips。
- マーカーを消去する
- マーカー(のオブジェクト)を保持しておく
マーカーを表示する際は、obj.setMap(map) としたが、消去する際は、同様に obj.setMap(null) とすればよい。複数のマーカーを消去する場合は、1つずつこの処理を適用する必要がある。
後処理に備えて保持しておくには、APIが提供する google.maps.MVCArray() が便利。forEach(callback:function(element,index))の形で一括処理が出来る。
gTrackMarkerList = new google.maps.MVCArray();
function drawGpsPoint(){
// 前回作成したマーカーを地図から消去
gTrackMarkerList.forEach(function(d_marker, i){
d_marker.setMap(null);
});
gTrackMarkerList.clear(); // この行は不要かもしれない
for (var i = 0; i < gGpsData.length; i++) {
var marker = new google.maps.Marker();
marker.setMap(gMap); // マーカーを地図にセット
// 後でクリアするために保持する
gTrackMarkerList.push(marker);
}
}