Add Radio Button functionality to change map type
This commit is contained in:
@@ -6,13 +6,24 @@ library(sf)
|
||||
|
||||
|
||||
crime_json <- fromJSON(file="C:\\Users\\milli\\Documents\\Datenbereinigung\\data.json")
|
||||
geojson_data <- st_read("C:\\Users\\milli\\Documents\\Datenbereinigung\\geojson.json")
|
||||
geojson_data <- st_transform(geojson_data, crs = 4326)
|
||||
|
||||
geo_bezirke <- st_read("C:\\Users\\milli\\Documents\\Datenbereinigung\\geobezirke-parsed.json")
|
||||
geo_bezirke <- st_transform(geo_bezirke, crs = 4326)
|
||||
|
||||
geo_stadtteile <- st_read("C:\\Users\\milli\\Documents\\Datenbereinigung\\geostadtteile-parsed.json")
|
||||
geo_stadtteile <- st_transform(geo_stadtteile, crs = 4326)
|
||||
|
||||
bezirke <- names(crime_json)
|
||||
|
||||
ui <- page_fillable(
|
||||
layout_columns(
|
||||
card(
|
||||
radioButtons(
|
||||
inputId = "rd_maptype",
|
||||
label = "Kartentyp",
|
||||
choices = c("Bezirke", "Stadtteile"),
|
||||
selected = "Bezirke"
|
||||
),
|
||||
selectInput(
|
||||
inputId = "drp_bezirk",
|
||||
label = "Bezirk",
|
||||
@@ -49,21 +60,52 @@ server <- function(input, output, session){
|
||||
}
|
||||
})
|
||||
|
||||
observeEvent(input$rd_maptype, {
|
||||
maptype <- input$rd_maptype
|
||||
mapproxy <- leafletProxy("hhmap")
|
||||
|
||||
if (maptype == "Bezirke"){
|
||||
hideGroup(mapproxy, "layer_stadtteile")
|
||||
showGroup(mapproxy, "layer_bezirke")
|
||||
}
|
||||
else {
|
||||
hideGroup(mapproxy, "layer_bezirke")
|
||||
showGroup(mapproxy, "layer_stadtteile")
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
output$hhmap <- renderLeaflet({
|
||||
leaflet() %>%
|
||||
addProviderTiles(providers$CartoDB.Positron) %>%
|
||||
addPolygons(
|
||||
data = geojson_data,
|
||||
data = geo_bezirke,
|
||||
group = "layer_bezirke",
|
||||
color = "#7bb5ab",
|
||||
fillColor = "#bdf0e7",
|
||||
weight = 1,
|
||||
fillOpacity = 0.05, # Polygon fill transparency
|
||||
fillOpacity = 0.4, # Polygon fill transparency
|
||||
highlightOptions = highlightOptions(
|
||||
color = "#103b57",
|
||||
weight = 4,
|
||||
bringToFront = TRUE
|
||||
),
|
||||
) %>%
|
||||
addPolygons(
|
||||
data = geo_stadtteile,
|
||||
group = "layer_stadtteile",
|
||||
color = "#7bb5ab",
|
||||
fillColor = "#bdf0e7",
|
||||
options = pathOptions(pane = "overlayPane"), # Use a leaflet option to ensure it's hidden
|
||||
weight = 1,
|
||||
fillOpacity = 0.4, # Polygon fill transparency
|
||||
highlightOptions = highlightOptions(
|
||||
color = "#103b57",
|
||||
weight = 4,
|
||||
bringToFront = TRUE
|
||||
),
|
||||
) %>%
|
||||
|
||||
setView(
|
||||
lng = 9.98716634776887,
|
||||
lat = 53.5488439196432,
|
||||
@@ -71,5 +113,7 @@ server <- function(input, output, session){
|
||||
)
|
||||
})
|
||||
}
|
||||
options(shiny.host = '0.0.0.0')
|
||||
options(shiny.port = 8888)
|
||||
shinyApp(ui = ui, server = server)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user