1
リーフレットマップ上のクラスターアイコン(クリックしたイベント)を(Leaflet.markerclusterプラグインを使用して)追加します。イベント自体は機能しますが、アラートによって、クリックされたすべてのアイコンの配列の最後の要素が常に生成されます。理由はわかりません。配列として 'marker'を宣言しても結果は変わりません。リーフレット:クラスター化されたアイコンにクリックイベントを追加します。
map.clearLayers;
var marker = [];
var markers = L.markerClusterGroup({
disableClusteringAtZoom: 10,
spiderfyOnMaxZoom: true,
chunkedLoading: true
});
for (id in reclist) {
var posn = reclist[id]['info'][1];
var pose = reclist[id]['info'][2];
var title = reclist[id]['info'][0];
var mapicon = L.icon({iconUrl: 'url of icon');
marker[id] = new L.marker(new L.LatLng(posn, pose), {icon: mapicon})
.on('click', function(){alert(title)});
markers.addLayer(marker[id]);
}
map.addLayer(markers);
あるご返信いただきありがとうございます。私は最初にドキュメンテーションの例に従っていました。問題は、各マーカーが個々のid(varタイトル)をスクリプトに送ることになっていることです。そのため、ループ内のマーカーにイベントを追加し、クラスタにはイベントを追加しませんでした。実際には同じことになります。どちらのバージョンも配列の最後の要素だけを送信します。イベントがクラスタに追加されている場合はわかりますが、イベントがマーカーに追加されている場合は表示されません。 – Mike
ありがとうございます。それはまさに私が必要としていたものでした。 – Mike