#' mapa UI Function
#'
#' @description A shiny Module.
#'
#' @param id,input,output,session Internal parameters for {shiny}.
#'
#' @noRd
#'
#' @importFrom shiny NS tagList
mod_mapa_ui <- function(id){
ns <- NS(id)
tabItem(tabName = "mapa",
# tags$style(type = "text/css", "#mapa_ui_1-mapa {height: calc(100vh - 80px) !important; overflow: hidden;}"),
leaflet::leafletOutput(ns("mapa"), width="auto", height = "auto"),
absolutePanel(top = 80, right = 20, height = 200, width = 100,
actionButton(ns("atualizar_mapa"), label = NULL, icon = icon("sync"))
)
)
}
#' mapa Server Function
#'
#' @noRd
mod_mapa_server <- function(input, output, session, origem){
ns <- session$ns
seletor_base <- reactive({
p <- origem$origem()
return(p)
})
info <- Sys.info() %>% as.data.frame()
info$coluna <- rownames(info)
info <- subset(info, coluna == "user")
library(leaflet)
# poligonos <- geobr::read_municipality(code_muni= "AC", year=2018)
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "AL", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "AM", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "AP", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "BA", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "CE", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "DF", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "ES", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "GO", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "MA", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "MG", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "MS", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "MT", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "PA", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "PB", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "PE", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "PI", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "PR", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "RJ", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "RN", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "RO", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "RR", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "RS", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "SC", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "SE", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "SP", year=2018))
# poligonos <- rbind(poligonos, geobr::read_municipality(code_muni= "TO", year=2018))
#
# saveRDS(poligonos, file = "poligonos")
# poligonos <- readRDS(paste0(caminho_poligonos, "\\poligonos"))
poligonos <- Dados::PoligonosMunicipios
atualiza_mapa <- function(){
output$mapa <- leaflet::renderLeaflet({
if(seletor_base() == TRUE){
if(file.exists(paste0("caged_filtrado2_", as.character(info$.[1])))){
municipios_selecionados <- readRDS(file = paste0("caged_filtrado2_", as.character(info$.[1])))
municipios_selecionados <- municipios_selecionados$Município
poligonos <- poligonos %>% subset(substr(code_muni, 1, 6)%in%municipios_selecionados)
poligonos$code_muni <- as.numeric(substr(poligonos$code_muni, 1, 6))
dados_municipio <- readRDS(file = paste0("caged_filtrado2_", as.character(info$.[1])))
dados_municipio <- dplyr::select(dados_municipio, Município, media_salario_municipio, n_amostras_municipio) %>% unique()
names(dados_municipio)[1] <- "code_muni"
dados_municipio <- dplyr::right_join(dados_municipio, poligonos, by = "code_muni")
poligonos$media_salario_municipio <- dados_municipio$media_salario_municipio
poligonos$n_amostras_municipio <- dados_municipio$n_amostras_municipio
mapa <- poligonos %>%
mutate(remun_media_mun = stringr::str_c("<font style='font-size:16px;'><b>", name_muni, "</b></font>", "<br>",
"<font style='font-size:14px;'>Código Município: ", code_muni, "</font><br>",
"<font style='font-size:14px;'>Salário Médio: ", format(round(media_salario_municipio, 2), big.mark = ".", decimal.mark = ","), "</font><br>",
"<font style='font-size:14px;'>Amostras: ", n_amostras_municipio, "</font><br>") %>%
purrr::map(htmltools::HTML)) %>%
leaflet::leaflet()
mapa <- mapa %>%
leaflet::addTiles() %>%
leaflet::addProviderTiles(providers$CartoDB.Positron) %>%
leaflet.extras::addFullscreenControl()
# leaflet.extras::addDrawToolbar() %>%
# leaflet.extras::addResetMapButton() %>%
# leaflet.extras::addStyleEditor()
mapa <- mapa %>%
leaflet::addPolygons(
label = ~remun_media_mun,
# fillColor = ~pal(medsal),
group = "Média Salarial",
color = "#00cc00",
weight = 1,
smoothFactor = 0.5,
opacity = 1,
fillOpacity = 0.8,
highlightOptions = highlightOptions(color = "white",
weight = 2,
bringToFront = TRUE)
)
mapa
}else{
mapa <- leaflet::leaflet()
mapa <- mapa %>%
leaflet::addTiles() %>%
leaflet::addProviderTiles(providers$CartoDB.Positron) %>%
leaflet.extras::addFullscreenControl()
mapa
}
}else{
if(file.exists(paste0("rais_filtrado2_", as.character(info$.[1])))){
municipios_selecionados <- readRDS(file = paste0("rais_filtrado2_", as.character(info$.[1])))
municipios_selecionados <- municipios_selecionados$Município
poligonos <- poligonos %>% subset(substr(code_muni, 1, 6)%in%municipios_selecionados)
poligonos$code_muni <- as.numeric(substr(poligonos$code_muni, 1, 6))
dados_municipio <- readRDS(file = paste0("rais_filtrado2_", as.character(info$.[1])))
dados_municipio <- dplyr::select(dados_municipio, Município, media_salario_municipio, n_amostras_municipio) %>% unique()
names(dados_municipio)[1] <- "code_muni"
dados_municipio <- dplyr::right_join(dados_municipio, poligonos, by = "code_muni")
poligonos$media_salario_municipio <- dados_municipio$media_salario_municipio
poligonos$n_amostras_municipio <- dados_municipio$n_amostras_municipio
mapa <- poligonos %>%
mutate(remun_media_mun = stringr::str_c("<font style='font-size:16px;'><b>", name_muni, "</b></font>", "<br>",
"<font style='font-size:14px;'>Código Município: ", code_muni, "</font><br>",
"<font style='font-size:14px;'>Salário Médio: ", format(round(media_salario_municipio, 2), big.mark = ".", decimal.mark = ","), "</font><br>",
"<font style='font-size:14px;'>Amostras: ", n_amostras_municipio, "</font><br>") %>%
purrr::map(htmltools::HTML)) %>%
leaflet::leaflet()
mapa <- mapa %>%
leaflet::addTiles() %>%
leaflet::addProviderTiles(providers$CartoDB.Positron) %>%
leaflet.extras::addFullscreenControl()
# leaflet.extras::addDrawToolbar() %>%
# leaflet.extras::addResetMapButton() %>%
# leaflet.extras::addStyleEditor()
mapa <- mapa %>%
leaflet::addPolygons(
label = ~remun_media_mun,
# fillColor = ~pal(medsal),
group = "Média Salarial",
color = "#00cc00",
weight = 1,
smoothFactor = 0.5,
opacity = 1,
fillOpacity = 0.8,
highlightOptions = highlightOptions(color = "white",
weight = 2,
bringToFront = TRUE)
)
mapa
}else{
mapa <- leaflet::leaflet()
mapa <- mapa %>%
leaflet::addTiles() %>%
leaflet::addProviderTiles(providers$CartoDB.Positron) %>%
leaflet.extras::addFullscreenControl()
mapa
}
}
})
}
observe({
atualiza_mapa()
})
observeEvent(input$atualizar_mapa, {
atualiza_mapa()
})
# poligonos <- readRDS("poligonos")
#
# municipios_selecionados <- c("350010", "350020")
#
# poligonos <- poligonos %>% subset(substr(code_muni, 1, 6)%in%municipios_selecionados)
#
# # bins <- c(0,
# # mean(BRASIL3NA$medsal[!is.na(BRASIL3NA$medsal)]),
# # max(BRASIL3NA$medsal[!is.na(BRASIL3NA$medsal)]))
# #
# # pal <- leaflet::colorBin("YlOrRd", domain = BRASIL3NA$medsal, bins = bins)
#
# mapa <- poligonos %>%
# leaflet::leaflet()
#
# mapa <- mapa %>%
# leaflet::addTiles()
#
# mapa <- mapa %>%
# leaflet::addPolygons(
# label = ~name_muni,
# # fillColor = ~pal(medsal),
# group = "Média Salarial",
# color = "#444444",
# weight = 0,
# smoothFactor = 0.5,
# opacity = 1.0,
# fillOpacity = 1.0,
# highlightOptions = highlightOptions(color = "white",
# weight = 2,
# bringToFront = TRUE)
# )
#
# mapa
#
# mapa <- mapa %>%
# leaflet::addLegend(pal = pal,
# values = ~medsal,
# opacity = 0.7,
# title = htmltools::HTML("Título"),
# position = "bottomright",
# group = "Média Salarial")
#
# mapa <- mapa %>%
# leaflet::addLayersControl(
# overlayGroups = c("Média Salarial"),
# options = layersControlOptions(collapsed = TRUE)
# )
#
# mapa <- mapa %>%
# leaflet::hideGroup(c("Média Salarial"))
#
# mapa
}
## To be copied in the UI
# mod_mapa_ui("mapa_ui_1")
## To be copied in the server
# callModule(mod_mapa_server, "mapa_ui_1")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.