如何更改传单标记聚类扩展的单个标记节点图标?

时间:2016-01-13 15:21:13

标签: javascript leaflet

我想使用自定义图标作为传单标记聚类扩展的单值标记。使用以下代码段更改传单的默认图标不起作用:

var newIcon = L.Icon.Default.extend({
            options: {
                    iconUrl: 'new_icon_location.png' 
            }
         });

标记群集扩展程序:https://github.com/Leaflet/Leaflet.markercluster

1 个答案:

答案 0 :(得分:3)

至于在Leaflet中创建图标,语法为:

var newIcon = L.icon({
    iconUrl: 'new_icon_location.png'
});

如果您希望所有标记使用该图标而不是默认标记(例如L.Icon.Default),则应该覆盖icon选项{ {1}}类(当然,在开始实例化标记之前):

L.Marker

至于更改Leaflet.markercluster插件使用的默认图标,您应该使用选项L.Marker.mergeOptions({ icon: newIcon });

iconCreateFunction

现在,当你说" 使用自定义图标作为传单标记聚类"的单值标记时,我并不完全确定你打算做什么。我猜您使用选项var mcg = L.markerClusterGroup({ iconCreateFunction: function (cluster) { // create an icon, possibly based on cluster properties. return clusterIcon; } }); ,并且您希望将特定图标应用于"大小为1&#34的群集; (实际上是标记集群插件覆盖图标的正常标记)?

在这种情况下,一个简单的解决方案就是不使用singleMarkerMode选项,而是让所有单个标记都使用该特定图标。可能通过更换标记'确实是默认图标。

但是如果出于某种原因你还想使用singleMarkerMode选项,那么它也不是那么复杂。你可以这样做:

singleMarkerMode