Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
传单中的聚类标记在R中提供密度信息_R_Leaflet_Gis - Fatal编程技术网

传单中的聚类标记在R中提供密度信息

传单中的聚类标记在R中提供密度信息,r,leaflet,gis,R,Leaflet,Gis,我想知道传单中的聚类标记是否可以显示频率信息,而不是聚类标记的数量 我有以下代码 getColor <- function(my.df) { sapply(my.df$value, function(value) { if(value <= 5) { "green" } else if(value <= 25) { "orange" } else { "red" } }) } icons <- awesomeIcons( i

我想知道传单中的聚类标记是否可以显示频率信息,而不是聚类标记的数量

我有以下代码

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$freq值的聚合,而不是集群中的管脚数。我不知道该怎么做,或者是否有一个clusterOption用于此操作。

是的,这是可能的

必须使用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);
var markers=L.markerClusterGroup({
iconCreateFunction:函数(群集){
让children=cluster.getAllChildMarkers();
设和=0;
for(设i=0;i
当然,您可以自定义图标


这是上述代码的一个实现。放大/缩小以查看显示标记总和的集群。

我无法在R中正确实现这一点。您有什么建议吗?我不知道R,但我建议您与我们共享您的代码。这是一个JavaScript解决方案,而不是R。正如我提到的,我不知道R,但我用JavaScript编写了逻辑,对于用Javascript编写的插件。您可以将其转换为R代码。请报告
dput(my.df)
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);