Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Delimitación de unidades administrativas #10

Closed
fabian199827 opened this issue Mar 30, 2023 · 6 comments
Closed

Delimitación de unidades administrativas #10

fabian199827 opened this issue Mar 30, 2023 · 6 comments

Comments

@fabian199827
Copy link
Collaborator

Delimitar de forma pareja los límites entre las comunas, provincias, regiones, distrito censal, cuencas, subcuencas y subsubcuencas. En la Figura 1 sólo se presenta la división entre comunas, sin embargo, esto se repite para todas las unidades administrativas y para todas las combinaciones de variables cuando la opción de macrozonas “Todas” está activada. Cuando se selecciona una macrozona (norte grande, norte chico, etc) se arregla la delimitación de las comunas (figura 2).

imagen
Figura 1. Delimitación errónea de las unidades administrativas

imagen
Figura 2. División correcta de las unidades administrativas

@jbkunst
Copy link
Contributor

jbkunst commented Mar 31, 2023

@frzambra realizar pruebas con flac geo base

antes de colocar la version NO simplificada (lenta)

@frzambra
Copy link
Contributor

No muy buenas noticias, leafem::addFgb está en desarrollo, acá hay un issue que tiene que ver con esto, pero no hay respuesta.

Tim no ha continuado con la mantención, pasa lo mismo con leafem::addCOG, yo le dejé un issue pero no hay respuesta. Esperemos que aparezca con versiones nuevas pronto.

Acá comparto las alternativas que pensé podrian servir:

guardar como flatGeoBuf (.fgb)

library(sf)
library(leafem)
library(mapview)

dc <- read_sf('data/raw/distrito_censal.gpkg')

mapview(dc) |> class() #objeto mapview

mapview(dc)@map |> class() #objeto leaflet

#con addPolygons 

leaflet(dc) |> 
leaflet::addPolygons(
    data = data_geo,
  )

dc$valor <- runif(nrow(dc),-5,5)
pal <- colorBin('RdYlBu',dc$valor, 10, pretty = TRUE, reverse = TRUE)
dc$fillColor <- pal(dc$valor)

write_sf(dc,'data/distrito_censal.fgb')

#con addFgb

leaflet(dc) |> 
   leafem::addFgb(
        file ='data/distrito_censal.fgb',
        fill =TRUE,
        stroke = NULL)

Ahora, implementando esto en shiny es el problema

library(shiny)
library(rnaturalearth)
library(leaflet.extras)
library(sf)
library(leafem)

chl <- ne_countries(country = 'chile',returnclass = 'sf') |> st_transform(4326)

ui <- fluidPage(
  leafletOutput("map1")
)

map <- leaflet() |>  
  addTiles() |> 
  addPolygons(data = chl) |> 
  #addSearchGoogle()
  addSearchOSM(options = searchOptions(
    textErr = "Ubicación no encontrada", textCancel = "Cancelar",
    textPlaceholder = "Buscar...",
    position = 'topleft')) |>
  addEasyButton(easyButton(
    icon = "fa-crosshairs",
    onClick=JS("function(btn, map){ map.locate({setView: true}); }")))

opción 1: intentando utilizar mapview, esto genera error

server <- function(input, output, session) {
  output$map1 <- renderLeaflet(map)
  
  observeEvent(input$map1_click, {
    leafletProxy("map1", session)  |> 
      clearShapes() %>% 
      mapview(dc)@map 
    })
}

app <- shinyApp(ui, server)
app

opción 2: llamando el archivo .fgb funciona, pero la función leafem::addFgb aún no está completamente desarrollada, por lo que las highlightOptions no funcionan (ver issue)

server <- function(input, output, session) {
  output$map1 <- renderLeaflet(map)
  
  observeEvent(input$map1_click, {
    leafletProxy("map1", session)  |> 
      clearShapes() |>  
      addFgb(
        file ='data/distrito_censal.fgb',
        fill =TRUE,
        stroke = NULL,
        highlightOptions = highlightOptions(color = "white", weight = 4,fillColor = parametros$color,bringToFront = TRUE),
        labelOptions = labelOptions(
          # offset = c(-20, -20),
          style = list(
            "font-family" = parametros$font_family,
            "box-shadow" = "2px 2px rgba(0,0,0,0.15)",
            "font-size" = "15px",
            "padding" = "15px",
            "border-color" = "rgba(0,0,0,0.15)"
          )
        )) 
  })
}

app <- shinyApp(ui, server)
app

Conclusión

Creo que la mejor opción sería no dejar que se muestren todas las unidades y solo por macrozona, quizas ese selector puede estar separado sobre el mapa donde se muestren las 5 macrozonas y se pueda seleccionar sólo una. De esa manera quedan menos selectores en la parte de la izquierda, creo que más simple.

@fabian199827
Copy link
Collaborator Author

fabian199827 commented Apr 26, 2023

Algo así es lo del comentario de de "Conclusión"? (Figura 1)
imagen
Figura 1

Algo así se me ocurre a mi (Figura 2)
modificación panel

@jbkunst
Copy link
Contributor

jbkunst commented Apr 26, 2023

No creo, Francisco solamente dijo que no se diera la posibildiad de seleccionar Todas las macrozonas, lo que simplemente se elimina como opción.

Ahora, lo que propones en tus gráficos no es lo estándar, y no se como funcionaría cuando la pantalla sea más angosta (como de un celular).

Saludos,

@fabian199827
Copy link
Collaborator Author

fabian199827 commented Apr 28, 2023

Okey, entiendo, lo había entendido mal, y tienes razón ese formato de los gráficos que mandé, sería poco eficiente la dinámica de la página. Entonces podría quedar de esta forma:

imagen

Mi pregunta es si se podrán seleccionar varias macrozonas (ahí se reemplazaría la opción de marcar todas)? o se seleccionará de a una?

@jbkunst
Copy link
Contributor

jbkunst commented Apr 28, 2023

Ok:

image

jbkunst added a commit that referenced this issue Apr 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants