2013-07-19 54 views
0
for (var i = 0; i < locs.length; i++) { 
       var marker = new google.maps.Marker({ 
        position: new google.maps.LatLng(locs[i][0], locs[i][1]) 
        , map: map 
        , title: "Hello World!" 
        , icon: iconImage 
        , clickable: true 
       }); 

       marker.info = new google.maps.InfoWindow({ 
        content: contentString 
       }); 

       google.maps.event.addListener(marker, 'click', function() { 
        marker.info.open(map, marker); 
       }); 
      } 

所有標記在地圖上都顯示得很好,但問題是當我單擊以查看信息窗口時 - 信息窗口始終顯示在同一標記上。有什麼問題?顯示在同一標記上的信息窗口

回答

0

由於您的標記變量是不是你的foreach循環的範圍之內持續,我認爲Maps API是不是跟蹤他們的正常工作。使用標記來保存數組中的活動標記是一種很好的做法,這樣您可以稍後處理它們(或以其他方式管理它們)。嘗試是這樣的:

var markers = Array(); //make sure this is scoped properly 

for (var i = 0; i < locs.length; i++) { 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locs[i][0], locs[i][1]) 
     , map: map 
     , title: "Hello World!" 
     , icon: iconImage 
     , clickable: true 
    }); 

    var index = markers.push(marker) -1; 

    markers[index].info = new google.maps.InfoWindow({ 
     content: contentString 
    }); 

    google.maps.event.addListener(markers[index], 'click', function() { 
     marker.info.open(map, marker); 
    });   
} 
相關問題