R的宣传单:如何定制集群的着色?

时间:2015-11-08 22:55:57

标签: r shiny leaflet

如何在R?

的宣传册包中自定义addMarkers函数的颜色

群集的默认着色是:

  • 1-10 Green
  • 11-100黄色
  • 100+红色

我想将范围和颜色更改为:

  • 1-100红色
  • 101-1000黄色
  • 1000+ Green

JS Leaflet具有以下功能: https://github.com/Leaflet/Leaflet.markercluster#customising-the-clustered-markers

这是否可以通过R包中的markerClusterOptions参数实现?

leaflet(quakes) %>% addTiles() %>% addMarkers(
  clusterOptions = markerClusterOptions()
)

1 个答案:

答案 0 :(得分:7)

您可以使用iconCreateFunction中的markerClusterOptions创建自己的自定义图标功能,以显示群集标记。

在您的示例中,您可以只修改默认标记函数(找到here)并只修改if / else循环设置标记的CSS类。可以找到为标记着色的默认CSS here。如果您想要更多自定义,可以创建自己的类。

这是一个代码示例(大的是红色,中等是黄色,小是绿色,所以我只是切换默认代码以符合您的条件):

library(leaflet)
leaflet(quakes) %>% addTiles() %>% addMarkers(
  clusterOptions = markerClusterOptions(iconCreateFunction=JS("function (cluster) {    
    var childCount = cluster.getChildCount(); 
    var c = ' marker-cluster-';  
    if (childCount < 100) {  
      c += 'large';  
    } else if (childCount < 1000) {  
      c += 'medium';  
    } else { 
      c += 'small';  
    }    
    return new L.DivIcon({ html: '<div><span>' + childCount + '</span></div>', className: 'marker-cluster' + c, iconSize: new L.Point(40, 40) });

  }"))
)