Основная проблема заключается в том, что если вы хотите, чтобы это работало, вы должны решить, что должен содержать объект 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
.
person
Daniel Martin
schedule
29.04.2010