[英]How can i change the single marker node icon of the leaflet marker clustering extension?
我想為傳單標記聚類擴展的單值標記使用自定義圖標。 使用以下代碼片段更改傳單的默認圖標不起作用:
var newIcon = L.Icon.Default.extend({
options: {
iconUrl: 'new_icon_location.png'
}
});
至於在 Leaflet 中創建圖標,語法是:
var newIcon = L.icon({
iconUrl: 'new_icon_location.png'
});
如果您希望所有標記都使用該圖標而不是默認圖標(即您發現的L.Icon.Default
),您應該覆蓋L.Marker
類的icon
選項(當然,在您開始實例化標記之前):
L.Marker.mergeOptions({
icon: newIcon
});
至於更改 Leaflet.markercluster 插件使用的默認圖標,您應該使用選項iconCreateFunction
:
var mcg = L.markerClusterGroup({
iconCreateFunction: function (cluster) {
// create an icon, possibly based on cluster properties.
return clusterIcon;
}
});
現在,當您說“為傳單標記聚類的單值標記使用自定義圖標”時,我不確定您打算做什么。 我猜您使用選項singleMarkerMode
並且您希望將特定圖標應用於“大小為 1 的集群”(實際上是正常標記,該圖標被標記集群插件覆蓋)?
在這種情況下,一個簡單的解決方案是不使用singleMarkerMode
選項,而是讓所有單個標記都使用該特定圖標。 可能確實通過替換標記的默認圖標。
但是如果出於某種原因您仍然想使用singleMarkerMode
選項,那么它也沒有那么復雜。 例如,您可以這樣做:
var mcg = L.markerClusterGroup({
singleMarkerMode: true,
iconCreateFunction: function (cluster) {
var childCount = cluster.getChildCount();
return childCount === 1 ? iconForSize1 : someOtherIcon;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.