2014-10-16 41 views
1

嘿,我有我的切换标记问题的开/关不能切换标志谷歌地图API V3

你有为什么切换只有一个标记(标记“Freilichtmuseum”)任何想法?

thX for help !!

var locations = [ 
    ['Sensenwerk', 47.20031715397146, 15.338023278873152, 4], 
    ['Freilichtmuseum', 47.158075170093, 15.315393984492403, 5], 
]; 


var infowindow = new google.maps.InfoWindow(); 

var marker, i; 

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 
    }); 

    function toggleLayer() {  
     if (marker.getMap() === null) { 
      marker.setMap(map); 
     } 
     else { 
      marker.setMap(null); 
     } 

    } 
    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
     } 
    })(marker, i)); 
} 
+0

你是如何调用该函数togglelayer? – geocodezip 2014-10-16 20:30:46

+0

函数toggleLayer(i) – Manuel 2014-10-16 20:35:14

+0

嗯我不知道为什么它只是切换最后的2个标记:/ – Manuel 2014-10-16 20:35:38

回答

3

toggleLayer只切换当前的“标记”。如果您希望它比最后一个更多,则需要保存对所有需要在数组中切换的标记的引用,并遍历该数组。

var markers = []; 
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 
    }); 
    markers.push(marker); 
    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
     } 
    })(marker, i)); 
} 

    function toggleLayer() {  
     for (var i=0; i< markers.length; i++){ 
     if (markers[i].getMap() === null) { 
      markers[i].setMap(map); 
     } 
     else { 
      markers[i].setMap(null); 
     } 
     } 
    } 

working fiddle

+0

ahh oke谢谢你m8。但我在JavaScript中很新,所以我不知道如何做到这一点?可能你给我一个代码的例子,那将是非常好的! – Manuel 2014-10-16 20:38:27

+0

也许你应该刷新这个问题。现在我的答案中有代码和工作小提琴。 – geocodezip 2014-10-16 20:39:15

+0

你可以[接受问题的答案](http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work)(你是唯一可以的)。 – geocodezip 2014-10-16 20:51:18