如何接收在server.R的.js文件中创建的闪亮数据?
我正在使用leaflat库,并且需要扩展当前地图视图的LatLngBounds.我需要在server.R中使用此变量进行进一步处理.
所以我有
mycode.js
//get bounds of extend of view
$(document).ready(function() {
var myBounds = map.getBounds();
Shiny.onInputChange("bounds", myBounds);
});
我包括在ui.R中
tags$body(tags$script(src="mycode.js"))
那就是我的Server.R的样子:
myBoundsR <- reactive(
as.numeric(input$bounds)
print(input$bounds)
)
但是,如何从mycode.js接收server.R文件中的数据?
感觉像Shiny.addCustomMessageHandler仅接收.js(或.R)中的数据,而session $sendCustomMessage仅可用于.R文件中吗?我将用什么将.js文件中的内容发送到server.R文件中?
还是可以像在server.R文件中创建变量一样简单地使用绑定变量?
解决方法:
如果要获取地图边界,则可以使用input $map_bounds(如果map是您的传单地图的ID).
这是一个示例,(使用tutorial中的传单示例代码)
library(shiny)
library(leaflet)
r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()
ui <- fluidPage(
leafletOutput("map")
)
)
server <- function(input, output, session) {
points <- cbind(rnorm(40) * 2 + 13, rnorm(40) + 48)
observe({
print(input$map_bounds)
})
output$map <- renderLeaflet({
leaflet() %>% addTiles()
})
}
shinyApp(ui, server)