我想知道传单中的clusterMarkers是否可以显示频率信息,而不是集群的标记数量?
我有以下代码
getColor <- function(my.df) {
sapply(my.df$value, function(value) {
if(value <= 5) {
"green"
} else if(value <= 25) {
"orange"
} else {
"red"
} })
}
icons <- awesomeIcons(
icon = 'ios-close',
iconColor = 'black',
library = 'ion',
markerColor = getColor(my.df)
)
map <- my.df %>%
leaflet () %>%
addTiles() %>%
addAwesomeMarkers(icon=icons, label=~as.character(freq), clusterOptions = markerClusterOptions())
map
my.df的格式如下
longitude latitude freq
XX.xxx XX.xxx 3
XX.xxx XX.xxx 7
XX.xxx XX.xxx 4
.
.
.
XX.xxx XX.xxx 6
我想让集群显示my.df $ freq值的总和,而不是集群中的引脚数。我不确定如何执行此操作,或者不确定是否为此使用了clusterOption。
答案 0 :(得分:2)
是的,这是可能的。
您必须使用 iconCreateFunction 函数,该函数作为MarkerClusterGroup的一个选项插入,用于创建自定义群集图标。您还需要使用 getAllChildMarkers()函数来遍历群集的所有子级并计算合计值。
var markers = L.markerClusterGroup({
iconCreateFunction: function(cluster) {
let children = cluster.getAllChildMarkers();
let sum = 0;
for (let i = 0; i < children.length; i++) {
sum += children[i].options.value;
}
return new L.DivIcon({ html: '<b>' + sum + '</b>' });
}
}).addTo(map);
L.circleMarker([0,0], {value: 10}).addTo(markers);
L.circleMarker([10,0], {value: 20}).addTo(markers);
L.circleMarker([40,10], {value: 60}).addTo(markers);
当然,您可以自定义图标。
此jsfiddle:https://jsfiddle.net/41mknp5s/1/是上述代码的实现。放大/缩小以查看显示标记总和的聚类。