2017-05-30 182 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") 
    }) 
相關問題