私はAPIを呼び出し、数秒後に新しいマーカーをプロットします。新しいマーカーがプロットされますが、古いマーカーはまだ残っています。私は、新しいマーカーがプロットされたときに古いマーカーをクリアしたいです。ここに私のコードです。Googleマップ新しいマーカーがプロットされたときの古いマーカーをクリアする
var myMarkers = [];
var i;
var marker = new google.maps.Marker({
position: new google.maps.LatLng(12.967086,77.746564),
map: map,
});
setInterval(function(){
$.post(contextPath+"/api/getlocations", {} , function(data){
var response = data;
var locations = response.locations;
var marker, i;
for (var i = myMarkers.length; i > 0; i--) {
myMarkers[i].setMap(null);
}
myMarkers = [];
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.open(map, marker);
}
})(marker, i));
myMarkers.push(marker);
}
});
}, 5000);
*マップが初期化されます。
ご協力いただければ幸いです。マーカーコレクション
var myMarkers = [];
は前にマーカーを作成、管理してくれてありがとう
私はあなたが達成したいとは思っていません - "動きのあるマーカー"のように聞こえます。その場合は、関数の外に "var marker"を移動し、最初に(...)を削除し、marker.setMap(null)だけを取り除くと、 "移動するマーカー"として機能するはずです。 – jspassov