うまくいきません。マップに追加したマーカーを管理するための配列があります。コレクションを更新すると、マーカー配列に正しい数のマーカーしか含まれていない場合でも、マーカーが複製されます。
これは私の側では本当に単純で愚かな間違いだと確信していますが、私はそれを見ていません。
m.viewMarkers = function(data){
//ajax call to get latLng, returns an object with 4 markers
showMarkers();
}
function showMarkers(){
g.currentMarkers = []; // setting up my marker array
$.each(g.markersCollection, function(i,item){ // jquery-iterate over the object from the ajax call
g.currentMarkers.push( // adding markers to the array but purposely not drawing them on the map just yet
new google.maps.Marker({
position : new google.maps.LatLng(item.lat, item.lng)
});
);
});
$.each(g.currentMarkers, function(i,item){
if( g.map.getBounds().contains( item.getPosition() ) ){ // checking if this marker is within the viewport
item.setMap(g.map);
}
else {
item.setMap(null); // i don't want to have invisible markers slowing down my map
}
});
console.log(g.currentMarkers.length); // tells me it's 4, just as expected
}
google.maps.event.addListener(g.map, 'dragend', function() {
m.viewMarkers();
});
私にはこれはすべて順調に見えますが、マップはすべてのdragend
.... eeekに4つの新しいマーカーを描画し続けます!