Mapa de Google: agregue click listener a cada polígono
Estoy trabajando en una aplicación web. Tengo un mapa de Google, donde agrego polígonos de una matriz. Recorro esa matriz y agrego los polígonos al mapa. También necesito agregar un detector de eventos al polígono, hacer clic y alertar la posición del polígono
Esto es lo que estoy haciendo
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);
});
}
Problema
Los polígonos están todos dibujando correctamente. Sin embargo, el problema es que cuando intento hacer clic en un polígono, siempre muestra el último índice. Es como si solo estuviera haciendo clic en el último polígono agregado. Creo que cuando agrego un nuevo oyente, este reemplaza al anterior. ¿Cómo puedo agregar una escucha para cada polígono agregado para alertar el índice correcto?
Gracias