在传单上闪亮的app上不能渲染addRasterImage

时间:2017-05-30 10:28:24

标签: r shiny mapping leaflet r-leaflet

所以我试图动态显示我之前计算过的一些栅格图层。我需要更新标记和显示图像上显示的值。 它与标记一起工作正常,但它似乎没有使用addRasterImage命令做任何事情。有帮助吗?代码:

library(shiny)
library(leaflet)
library(RColorBrewer)

#### Mapa en shiny ####
ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "100%", height = "100%"),
  absolutePanel(top = 10, right = 10,
                sliderInput("range", "Fecha", 1, length(arch),
                            value = 1, step = 1
                )
  )
)

server <- function(input, output, session) {

  # Reactive expression for the data subsetted to what the user selected
  # filteredData <- reactive({
  #   a[[input$range]]
  # })

  int.pred<-cropinterp@data@values[!is.na(cropinterp@data@values)]
  pal<-colorNumeric("RdBu", int.pred)
  pal2<- pal<-colorNumeric("Spectral", (int.pred))

  neess<- seq(1,1000,1)
  qpal <- colorBin(terrain.colors(4), domain=neess, bins=c(1,10,100,1000,Inf))

  output$map <- renderLeaflet({
    # Use leaflet() here, and only include aspects of the map that
    # won't need to change dynamically (at least, not unless the
    # entire map is being torn down and recreated).
    leaflet() %>% 
      addTiles(group="OSM (default)") %>%
      setView(lng=-3.77 , lat =40.36, zoom=6) %>%
      addMeasure()%>%
      addRasterImage(rr, colors="Spectral", opacity = 0.7, group ="Krige de Precios") %>%
      addRasterImage(cropinterp, colors="Spectral", opacity = 0.7, group = "Spline de Precios") %>%
      addPolylines(data = cropcont, fillOpacity=0.5, fillColor = "transparent",opacity = 0.7,weight = 2, group = "Contorno Precios") %>%
      addLayersControl(
        baseGroups = c("OSM (default)"),
        overlayGroups = c("Contorno Precios", "Spline de Precios", "Krige de Precios","Spline Madrid"),
        options = layersControlOptions(collapsed = FALSE),
        position="topleft") %>%
      addLegend("bottomright", pal=pal2, values=int.pred, title = "Precio", opacity = 1)%>%
      addLegend(pal = qpal, values = neess, opacity = 1, position="bottomleft")

  })
  # Incremental changes to the map (in this case, replacing the
  # circles when a new color is chosen) should be performed in
  # an observer. Each independent set of things that can change
  # should be managed in its own observer.
  observeEvent(input$range, {
    nn<- input$range
      leafletProxy("map", session)%>%
      clearMarkers()%>%
      clearMarkerClusters()%>%
      addCircleMarkers(lat = timeline$Latitud, lng = timeline$Longitud..WGS84., fillColor = pal,
                       label = paste(as.character(timeline$Rótulo), timeline[,nn+9]),
                       labelOptions = labelOptions(opacity = 0.9,noHide = T), 
                      clusterOptions = markerClusterOptions(), group = "OSM (default)")
  })

  observe({
    na<- input$range
    leafletProxy("map", session)%>%
      addRasterImage(a[[na]], opacity = 0.7)
  })
}

shinyApp(ui, server)

显然代码对此位没有反应:

observe({
        na<- input$range
        leafletProxy("map", session)%>%
          addRasterImage(a[[na]], opacity = 0.7)
      })

1 个答案:

答案 0 :(得分:0)

问题已解决:

经过大量挖掘后,我找到了这个问题的答案here

问题是光栅图像在下面渲染了瓷砖(不知道为什么会发生地狱,但它确实是一个真正的错误)。在链接问题上提供的答案中,用户通过删除切片并在每次输入更改时动态添加切片来解析它:

{{1}}