私はウェブアプリケーションに取り組んでいます。配列からポリゴンを追加する Google マップがあります。その配列をループして、ポリゴンをマップに追加します。また、ポリゴン クリックにイベント リスナーを追加して、ポリゴンの位置を警告する必要があります。
これは私がやっていることです
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);
});
}
問題
ポリゴンはすべて正しく描画されています。ただし、問題は、ポリゴンをクリックしようとすると、常に最後のインデックスが表示されることです。追加された最後のポリゴンをクリックするだけのようです。新しいリスナーを追加すると、古いリスナーが上書きされると思います。正しいインデックスを警告するために、追加されたポリゴンごとにリスナーを追加するにはどうすればよいですか?
ありがとう