2017-05-30 129 views
0

所以我试图动态显示我以前计算过的一些栅格图层。我需要更新标记和显示图像上显示的值。 它可以正常使用标记,但它似乎没有对addRasterImage命令做任何事情。任何帮助?代码: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<[email protected]@values[!is.na([email protected]@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) 
     }) 

回答

0

问题就迎刃而解了:

很多挖我找到了一个解决这个问题的here

问题在于光栅图像呈现为低于瓷砖(不知道为什么发生的地狱,但它一直是一个真正的bug子手)。在链接问题上提供的答案中,用户通过移除瓦片并在每次输入更改时动态添加瓦片来解决该问题:

tiles <- c("Hydda.Base", 
      "Hydda.Full", 
      "Esri.WorldImagery", 
      "Esri.WorldTopoMap") 

    observe({ 
    filtdata <- filteredData() 
    selectedTiles <- input$tiles 
    leafletProxy("map", session)%>% 
     clearTiles() %>% 
     addProviderTiles(selectedTiles, providerTileOptions(zIndex=-10, continuousWorld=FALSE), group="base")%>% 
     clearImages() %>% 
     addRasterImage(filtdata, colors="Spectral", project=FALSE, opacity = 0.7, group = "Spline Madrid") 
    }) 
相关问题