2012-10-26 51 views
-3

這裏是我的代碼,其中有一個多邊形的循環來創建並單擊事件偵聽器,爲它們顯示一個infowindow。Diff Infindindows多個多邊形

var GoogleMap,polyInfoWindow,polygon,getPath,getInfo; 
    function PolygonToMap() 
    { 
     GoogleMap = // map initialization //; 
     polyInfoWindow= // Infowindow initialization for polygons //; 

     // for loop of number polygons top create 
     { 
      getPath= // get path for new polygon // ; 
      polygon = new google.maps.Polygon({ 
       paths: getPath, 
       strokeColor: "#0071bc", 
       strokeOpacity: 1, 
       strokeWeight: 2, 
       fillColor: "#000000", 
       fillOpacity: 0.1, 
       map:GoogleMap 
      }); 

      getInfo= // get new data for new polygon // ; 
      google.maps.event.addListener(polygon,"click",function(event){ 
       polyInfoWindow.setContent(getInfo); 
       polyInfoWindow.open(GoogleMap); 
       polyInfoWindow.setPosition(event.latLng); 
      }); 

     } 
    } 

這裏多邊形生成細,但對多邊形點擊所有多邊形的信息窗口顯示的數據是相同的(與環中最後一個多邊形的信息數據的數據信息窗口)。 這意味着在每個多邊形創建的for循環中,在事件添加監聽器infowindows數據覆蓋所有多邊形infowindw。

所以,我需要的是每個多邊形都要在infowindow中顯示其數據'onclick',即每個多邊形infowindow的差異數據。

+0

您發佈的代碼是不完整的,並沒有太大的意義。 – Marcelo

回答

0

將infowindow與多邊形相關聯的最簡單方法是使用函數閉包。

Example