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