次のコードは、json オブジェクトをループして、Google マップにマーカーを配置します。これはうまくいきます。
function displayMarkers(data){
for(var i = 0; i < data.Lat.length; i++){
var point = new GLatLng(data.Lat[i],data.Lng[i]);
marker = new GMarker(point);
map.addOverlay(marker);
// here's the problem
GEvent.addListener(marker, "click", function(){
alert(data.Name[i]);
});
}
}
問題は、すべてのマーカーが常に「i」の最後の値で応答することです。データオブジェクトから正しい情報を取得するためにクリックされたマーカーを特定する方法を見つけようとしています。
作成時にマーカーの配列を作成して、マーカーの位置に基づいてループすることを考えていますが、それは私にとって非常に非効率的です。
いつものように、どんな助けでも大歓迎です。