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(),
)
)