从server.R中的.js接收数据闪亮

时间:2015-08-21 13:07:36

标签: javascript r shiny shiny-server

我如何接收在.js闪亮的server.R文件中创建的数据?

我正在使用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)
  )

但是,我如何收到来自server.R的{​​{1}}文件中的数据?

感觉mycode.js仅在Shiny.addCustomMessageHandler(或.js)中接收数据,而.R只能用于session$sendCustomMessage个文件?我会用什么来将.R文件中的内容发送到.js文件?!

或者我可以简单地使用变量server.R,就像我在bound文件中创建它一样?!

1 个答案:

答案 0 :(得分:1)

如果你想获得地图边界,你可以使用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)