输入选择使用闪亮

发布于 2025-01-26 14:27:43 字数 2406 浏览 3 评论 0原文

我完成了这个闪亮的应用程序,只有第二个应用程序(我认为有很多错误),而且效果不佳。我需要以这种方式使用选择输入:当我选择城市时,我需要到城市和城市服务的客户。因此,如果我选择Novara,我将在地图上看到Genova和Bologna。我在哪里错了?

服务器 库(readxl)

city <- c("Novara", "Novara","Novara","Novara","Brindisi","Brindisi","Brindisi")
client <- c("Genova", "Genova","Bologna","Bologna","Bologna","Empoli","Catania")
dimension <- as.numeric(c("15000", "5000","3000","4600","3400","6700","3400"))

Dati <- data.frame(city,client,dimension)
prov_ita <- rgdal::readOGR("https://raw.githubusercontent.com/openpolis/geojson-italy/master/geojson/limits_IT_provinces.geojson")


shinyServer(
  function(input, output, session) {
    
    magazzino <- reactive({
      filter(Dati, city == input$magazzino)
    })
    
    observeEvent(input$magazzino,{
      points <- eventReactive(input$recalc, {
        cbind(rnorm(40) * 2 + 13, rnorm(40) + 48)
      }, ignoreNULL = FALSE)
      
      options(dplyr.summarise.inform = FALSE)
      a <- client 
      b <- dimension
      VendutoPerProvincie<- data.frame(a,b)
      
      VendutoPerProvincie %>% 
        group_by(a) %>% 
        summarise(d = sum(b)) %>% 
        ungroup()
      
      citta_new <- geocode_OSM(unique(Dati$city))
      
      citta.sf <- arrange(citta_new %>% st_as_sf(coords = c("lon", "lat"), crs = 4326))
      citta.buffer <- arrange(citta.sf %>% sf::st_buffer(dist = 0))
      
      pal <- colorNumeric("viridis", NULL)
      
      prov_ita@data = data.frame(prov_ita@data,
                                 VendutoPerProvincie[match(prov_ita@data[, "prov_name"],
                                                           VendutoPerProvincie[, "a"]),])
      
      
      output$mymap <- renderLeaflet({
        leaflet(prov_ita) %>% addTiles() %>%
          addMarkers(data = citta.sf, label = unique(citta_new$query)) %>%
          addPolygons(stroke = TRUE, smoothFactor = 0.3, fillOpacity = 1,
                      fillColor = ~pal(prov_ita$b) , weight = 1, color = "black", label = prov_ita$prov_name)
      })
    })
  })

UI

library(shiny)
library(leaflet)
library(tmaptools)
library(sf)
library(leaflet)
library(readxl)
library(dplyr)
library(DT)

shinyUI (fluidPage(
  
  selectInput("magazzino", "Magazzino_di_Partenza", choices = unique(Dati$client)),
  
  leafletOutput("mymap"),
  p(),
  
)
)

I have done this shiny app, only my second (I think there are a lot errors), and it isn't work well. I need to use select input in this way: when I select city I need to the city and the client the city served. So if I select Novara I will see Genova and Bologna on the map. Where am I wrong?

SERVER
library(readxl)

city <- c("Novara", "Novara","Novara","Novara","Brindisi","Brindisi","Brindisi")
client <- c("Genova", "Genova","Bologna","Bologna","Bologna","Empoli","Catania")
dimension <- as.numeric(c("15000", "5000","3000","4600","3400","6700","3400"))

Dati <- data.frame(city,client,dimension)
prov_ita <- rgdal::readOGR("https://raw.githubusercontent.com/openpolis/geojson-italy/master/geojson/limits_IT_provinces.geojson")


shinyServer(
  function(input, output, session) {
    
    magazzino <- reactive({
      filter(Dati, city == input$magazzino)
    })
    
    observeEvent(input$magazzino,{
      points <- eventReactive(input$recalc, {
        cbind(rnorm(40) * 2 + 13, rnorm(40) + 48)
      }, ignoreNULL = FALSE)
      
      options(dplyr.summarise.inform = FALSE)
      a <- client 
      b <- dimension
      VendutoPerProvincie<- data.frame(a,b)
      
      VendutoPerProvincie %>% 
        group_by(a) %>% 
        summarise(d = sum(b)) %>% 
        ungroup()
      
      citta_new <- geocode_OSM(unique(Dati$city))
      
      citta.sf <- arrange(citta_new %>% st_as_sf(coords = c("lon", "lat"), crs = 4326))
      citta.buffer <- arrange(citta.sf %>% sf::st_buffer(dist = 0))
      
      pal <- colorNumeric("viridis", NULL)
      
      prov_ita@data = data.frame(prov_ita@data,
                                 VendutoPerProvincie[match(prov_ita@data[, "prov_name"],
                                                           VendutoPerProvincie[, "a"]),])
      
      
      output$mymap <- renderLeaflet({
        leaflet(prov_ita) %>% addTiles() %>%
          addMarkers(data = citta.sf, label = unique(citta_new$query)) %>%
          addPolygons(stroke = TRUE, smoothFactor = 0.3, fillOpacity = 1,
                      fillColor = ~pal(prov_ita$b) , weight = 1, color = "black", label = prov_ita$prov_name)
      })
    })
  })

UI

library(shiny)
library(leaflet)
library(tmaptools)
library(sf)
library(leaflet)
library(readxl)
library(dplyr)
library(DT)

shinyUI (fluidPage(
  
  selectInput("magazzino", "Magazzino_di_Partenza", choices = unique(Dati$client)),
  
  leafletOutput("mymap"),
  p(),
  
)
)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文