Основная проблема в том, что если вы хотите, чтобы это работало, вы должны решить, что должен содержать объект markersTest
. Похоже, вы не можете решить, должны ли элементы в markersTest
быть маркерами или массивами, которые сообщают вам о том, где будут размещаться маркеры.
Цитируя из вашего файла JavaScript, вот две функции, которые выполняются, когда вы устанавливаете / снимаете флажок:
15 function addTestMarkers(){
16 for(var i in markersTest) {
17 var location = new google.maps.LatLng(markersTest[i][1], markersTest[i][2]);
18 marker = new google.maps.Marker({
19 position: location,
20 map: map
21 });
22 }
23 }
24
25 // Removes the overlays from the map, but keeps them in the array
26 function clearOverlays() {
27 if (markersTest) {
28 for (i in markersTest) {
29 markersTest[i].setMap(null);
30 }
31 }
32 }
Для работы addTestMarkers
объект markersTest
должен содержать описания того, куда должны идти маркеры. Для работы clearOverlays
объект markersTest
должен содержать маркеры.
Вот мое предложение: измените объект markersTest
при настройке в верхней части файла javascript на markerDestinations
, а в верхней части файла javascript markersTest
инициализируется с помощью:
markersTest = {};
Затем измените addTestMarkers
на:
function addTestMarkers() {
for(var i in markerDestinations) {
var location = new google.maps.LatLng(markersDestinations[i][1], markersDestinations[i][2]);
markersTest[i] = new google.maps.Marker({
position: location,
map: map
});
}
}
Ключевое изменение состоит в том, чтобы addTestMarkers
фактически помещал маркеры в объект markersTest
.