私はマップをレンダリングするためにリーフレットを使用しています。マーカー付きのマップを作成しましたが、各マーカーにイベントリスナー「onClick」を実装する方法がわかりません。
私のコード
var stops = JSON.parse(json);
var map = new L.Map('map', {
zoom: 12,
minZoom: 12,
center: L.latLng(41.11714, 16.87187)
});
map.addLayer(L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
attribution: 'Map data',
maxZoom: 18,
id: 'mapbox.streets',
accessToken: '-----'
}));
var markersLayer = new L.LayerGroup();
map.addLayer(markersLayer);
//populate map from stops
for (var i in stops) {
L.marker(L.latLng(stops[i].Position.Lat, stops[i].Position.Lon), {
title: stops[i].Description
}).addTo(markersLayer).bindPopup("<b>" + stops[i].Description + "</b>").openPopup();
}
例
map.on('click', function(e) {
alert(e.latlng);
});
リーフレットは参照によってイベントリスナーを処理するため、リスナーを追加してから削除する場合は、関数として定義します。
function onClick(e) { ... }
map.on('click', onClick);
map.off('click', onClick);