我在使用 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)?
尽管它是一个组名称,但
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());
}")