我剛開始瞭解我即將開展的項目的Leaflet.js。Leaflet通過外部元素在集羣標記上觸發事件
什麼,我試圖完成: 我需要它顯示在地圖上標記的列表,並在列表項正在徘徊(或鼠標懸停)它會顯示在那裏的位置地圖(爲單標記,應該改變其顏色。對於集羣標記,它應該顯示覆蓋率線就像當我們再次在它是如何工作..也許改變它的顏色太多,如果可能的話) 。 不應該改變地圖以及縮放級別,簡單地說,我需要突出顯示地圖上的標記/聚類。
我超級沮喪:我沒能找到一個方法來做到這一點上集羣標記。
我使用全局變量對象來存儲任何創建的標記。
function updateMapMarkerResult(data) {
markers.clearLayers();
for (var i = 0; i < data.length; i++) {
var a = data[i];
var myIcon = L.divIcon({
className: 'prop-div-icon',
html: a.Description
});
var marker = L.marker(new L.LatLng(a.Latitude, a.Longitude), {
icon: myIcon
}, {
title: a.Name
});
marker.bindPopup('<div><div class="row"><h5>Name : ' + a.Name + '</h5></div><div class="row">Lat : ' + a.Latitude + '</div><div class="row">Lng : ' + a.Longitude + '</div>' + '</div>');
marker.on('mouseover', function(e) {
if (this._icon != null) {
this._icon.classList.remove("prop-div-icon");
this._icon.classList.add("prop-div-icon-shadow");
}
});
marker.on('mouseout', function(e) {
if (this._icon != null) {
this._icon.classList.remove("prop-div-icon-shadow");
this._icon.classList.add("prop-div-icon");
}
});
markersRef[a.LocId] = marker; // <-- Store Reference
markers.addLayer(marker);
updateMapListResult(a, i + 1);
}
map.addLayer(markers);
}
但我不知道哪個對象或屬性獲取聚集標記引用。 而我通過我的全局變量(僅適用於單個標記)觸發標記事件。
...
li.addEventListener("mouseover", function(e) {
jQuery(this).addClass("btn-info");
markersRef[this.getAttribute('marker')].fire('mouseover'); // --> Trigger Marker Event "mouseover"
// TODO : Trigger ClusteredMarker Event "mouseover"
});
...
這是我目前的https://jsfiddle.net/oryza_anggara/2gze75L6/,任何潛在客戶都可以得到很大的幫助。謝謝。
注:只有JS LIB我熟悉是JQuery的,我有其他如Angular.js
它的作品!絕對是我在找什麼。而Spiderfy的功能真的很棒!會考慮使用它,需要考慮更多的標記。但你真的已經釘上了它,甚至更多..謝謝,你只需保存我頭痛的一週。 – OAN