マーカークラスターとさまざまなポイントを含むGoogleマップマップがあります。イベントリスナーで以下のようなポイントを生成すると、ページの読み込み時にポイントごとにオフになります。
function mappyfuntime() {
var mapOptions = {
center: new google.maps.LatLng(51.481581,-3.17909),
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("bigmap"), mapOptions);
<?php echo prepare_javascript(); ?>
var markers = [];
var marker = [];
linkto = new Array();
for(g=0; g<LocationsArray.length; g++) {
var latlng = new google.maps.LatLng(LocationsArray[g][0], LocationsArray[g][1]);
marker[g] = new google.maps.Marker({'position': latlng});
markers.push(marker[g]);
google.maps.event.addListener(marker[g], 'click', click_handler(PermalinksArray[g]));
}
var markerCluster = new MarkerClusterer(map, markers);
}
mappyfuntime();
function click_handler(link) {
alert(link);
}
ただし、google.maps.event.addListener を次のように変更すると、アラートは未定義に戻ります。
google.maps.event.addListener(marker[g], 'click', function() {
alert(PermalinksArray[g]);
});
PermalinksArray[g] を関数に渡すと、同じことが起こります。対応するポイントがマップ上でクリックされたときに、配列 (グローバルに定義されている) から情報を取得する方法はありますか?