2017-05-30 2 views
0

J'essaie donc de montrer dynamiquement certains calques raster que j'ai précédemment calculés. J'ai besoin de mettre à jour les valeurs affichées sur les marqueurs et l'image affichée. Cela fonctionne très bien avec les marqueurs, mais il ne semble rien faire avec la commande addRasterImage. De l'aide? Code:addRasterImage pas de rendu sur l'appli brillante de la brochure

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) 

Apparemment, le code ne réagit pas à ce bit:

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

Répondre

0

Problem solved:

Après beaucoup de creuser j'ai trouvé une réponse à cette question here

Le problème était que l'image raster a été rendue ci-dessous les tuiles (ne sais pas pourquoi l'enfer qui se passe, mais il a été un vrai bugger). Sur la réponse fournie sur la question liée, l'utilisateur la résout en supprimant les tuiles et en les ajoutant dynamiquement chaque fois que l'entrée change:

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") 
    }) 
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") 
    })