2014-10-16 73 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