Я храню все объекты маркеров Карт Google в одном массиве. Сейчас я пытаюсь настроить функцию, которая удалит все маркеры в массиве с карты, но у меня возникли проблемы с циклом.
Сначала я поместил каждый маркер в массив следующим образом:
eval("markerZip"+value.zip+" = new google.maps.Marker({map: map, icon: '/images/mapmarker.php?m=zip_marker.png', position: zipCenter});");
eval("markersArray['markerZip"+value.zip+"'] = markerZip"+value.zip);
Затем, когда я хочу удалить маркеры, я делаю это:
function removeAllMarkers(exceptId) {
$.each(markersArray, function(index, value) {
if(value != exceptId) {
value.setMap(null);
console.log(value);
}
});
}
Однако итерация по массиву, похоже, ничего не делает. Это как если бы массив был пуст, потому что строка console.log ничего не возвращает. Когда я отображаю массив в моей консоли, он показывает «[]» (который я затем нажимаю, чтобы отобразить дочерние объекты), который содержит:
markerZip01002
U { gm_accessors_={...}, map=U, b=U, more...}
markerZip02111
U { gm_accessors_={...}, map=U, b=U, more...}
markerZip02135
U { gm_accessors_={...}, map=U, b=U, more...}
markerZip02139
U { gm_accessors_={...}, map=U, b=U, more...}
markerZip02466
U { gm_accessors_={...}, map=U, b=U, more...}