Mapa Google: dodaj odbiornik kliknięć do każdego wielokąta

Pracuję nad aplikacją internetową. Mam mapę google, gdzie dodaję wielokąty z tablicy. Przechodzę przez tę tablicę i dodaję wielokąty do mapy. Muszę także dodać detektor zdarzeń do kliknięcia wielokąta i zaalarmować położenie wielokąta

To właśnie robię

map = new google.maps.Map(document.getElementById('map_canvas'),
    mapOptions);
//Loop on the polygonArray
for (var i = 0; i < polygonArray.length; i++) {
    //Add the polygon
    var p = new google.maps.Polygon({
        paths: polygonArray[i],
        strokeWeight: 0,
        fillColor: '#FF0000',
        fillOpacity: 0.6,
        indexID: i
    });
    p.setMap(map);

    //Add the click listener
    google.maps.event.addListener(p, 'click', function (event) {
        //alert the index of the polygon
        alert(p.indexID);
    });
}

Problem

Wszystkie wielokąty są poprawnie rysowane. Jednak problem polega na tym, że gdy próbuję kliknąć wielokąt, zawsze wyświetla ostatni indeks. to tak, jakby klikało tylko ostatni dodany wielokąt. Myślę, że kiedy dodam nowego słuchacza, zastępuje on starego. Jak mogę dodać słuchacza dla każdego dodanego wielokąta, aby ostrzec o prawidłowym indeksie?

Dzięki

questionAnswers(2)

yourAnswerToTheQuestion