簡體   English   中英

如何更改傳單標記聚類擴展的單個標記節點圖標?

[英]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' 
            }
         });

標記聚類擴展: https : //github.com/Leaflet/Leaflet.markercluster

至於在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM