R传单easybutton : reset view to layer bbox

标签 r shiny leaflet

我在使用 Shiny 应用程序中的 easybutton leaflet 插件时遇到了一些问题。 我想做的是在单击 easybutton 时将点图层上的 View 重新居中:

    ...
    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 控制台中打印出“points is not Defined”。

如何获取我的积分层的真实传单名称(JS)?

谢谢。

最佳答案

尽管是一个组名称,但 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());
    }") 

关于R传单easybutton : reset view to layer bbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47554977/

相关文章:

javascript - Mapbox.js 以错误的顺序返回图 block

R:map2SpatialPolygons 中的 ID

r - 在列表中的多个列表中定义对象的名称(使用 lapply?)

r - R Markdown 中的 4 级标题问题

r - 在 DigitalOcean ubuntu 服务器上托管 Shiny 的应用程序时出错

r - 错误 : Could not find a root 'DESCRIPTION' file that starts with '^Package'

r - 如何使用 dplyr 来总结两个函数

r - 在 Shiny 的应用程序中下载多张同一个 excel 文件中的多个数据框

javascript - 在 Mappa.js 中禁用 ZoomControl

javascript - native 元素的大小为零