更新子项后更新集群图标

时间:2015-03-30 21:55:20

标签: leaflet markerclusterer

在这个人为的例子中,我在地图上显示温度测量结果,并使用markercluster插件聚集过于接近的标记。我使用群集组的iconCreateFunction生成一个反映群组中孩子平均温度的图标。

我的问题是我希望随着时间的推移更新标记的温度,并更新群集图标以反映这些更改。更新后有没有办法在所有集群上触发iconCreateFunction?

2 个答案:

答案 0 :(得分:1)

我发现这个解决方案有点hacky,但确实有效:

如果您有标记组

var markers = new L.MarkerClusterGroup(...);

然后您可以通过类似

的方式强制群集更新其图标
for (var cluster in markers._featureGroup._layers) {
    markers._featureGroup._layers[cluster]._updateIcon && markers._featureGroup._layers[cluster]._updateIcon();
}

答案 1 :(得分:1)

“官方”解决方案似乎是将标记重新添加到群集组,如下所示:https://github.com/Leaflet/Leaflet.markercluster/issues/287

这可以通过以下方式完成:

var markers = new L.MarkerClusterGroup(...);
...
markers.removeLayer(marker);
markers.addLayer(marker);