我想爲傳單標記羣集擴展的單個值標記使用自定義圖標。用下面的代碼片段改變傳單的默認圖標不起作用:如何更改傳單標記羣集擴展的單個標記節點圖標?
var newIcon = L.Icon.Default.extend({
options: {
iconUrl: 'new_icon_location.png'
}
});
標記集羣擴展:https://github.com/Leaflet/Leaflet.markercluster
我想爲傳單標記羣集擴展的單個值標記使用自定義圖標。用下面的代碼片段改變傳單的默認圖標不起作用:如何更改傳單標記羣集擴展的單個標記節點圖標?
var newIcon = L.Icon.Default.extend({
options: {
iconUrl: 'new_icon_location.png'
}
});
標記集羣擴展:https://github.com/Leaflet/Leaflet.markercluster
至於創造傳單圖標,語法是:
var newIcon = L.icon({
iconUrl: 'new_icon_location.png'
});
如果你想所有標記使用該圖標,而不是默認的(即你想出L.Icon.Default
),你應該重寫icon
選項L.Marker
類(你之前開始實例,當然標記):
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;
}
});
感謝您的反饋意見。這真的很有幫助。關於你的問題,我只是想改變藍色的默認圖標,而不是集羣圖標。 – Oliver