将视图重置为图层bbox

问题描述 投票:0回答:1

我在使用 Shiny 应用程序中的 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 控制台中打印出“points is not Defined”。

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

r shiny r-leaflet
1个回答
3
投票

尽管它是一个组名称,但

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());
    }") 
© www.soinside.com 2019 - 2024. All rights reserved.