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); } }