R leaflet easybutton:将视图重置为图层bbox

时间:2017-11-29 14:20:12

标签: r shiny leaflet

我的Shiny App中的easybutton宣传单片插件有些麻烦。 我想要做的是在点击easybutton时重新点入我的点图层上的视图:

    ...
    addCircleMarkers(lng = points$long,
                     lat = points$lat,
                     weight = 1, radius = 4,
                     group = "points", 
                     ...

    addEasyButton(easyButton(
      icon = 'ion-arrow-shrink',
      title = 'Reset view',
      onClick = JS("function(btn, map) {map.fitBounds(points.getBounds()); }") 
    ))

但它不起作用:在JS控制台中打印“未定义点”。

如何获得我的点图层的真实传单名称(JS)?

谢谢。

1 个答案:

答案 0 :(得分:1)

尽管是一个组名,points未在javascript中定义 - 您需要使用layerManager来查找图层 - 并且将图层名称从R传递给js并不像人们希望的那样简单。

这在文档中不是很清楚,但您应该可以像标记一样设置标记的组名,然后像这样访问它:

onClick = JS("function(btn, map) { 
   var groupLayer = map.layerManager.getLayerGroup('groupName');
}") 

要获得你应该能够使用的界限:

   onClick = JS("function(btn, map) { 
       var groupLayer = map.layerManager.getLayerGroup('groupName');
       map.fitBounds(groupLayer.getBounds());
    }")