library(shiny) library(leaflet) library(shinydashboard) library(rgdal) library(dplyr) library(gsheet) library(DT) library(sf) library(tidyverse) library(shapefiles) library(htmltools)
data = gsheet2tbl(‘https://docs.google.com/spreadsheets/d/1EDk3Ofi1M6U4Piv_QU8tA65WtrLo0OWtr9nUEhMHXnc/edit?usp=sharing’)
dataparaunir = data baseb31 = st_read(“b31_3.shp”) baseb31_basic = baseb31 %>% select(SECTOR,MANZANA,PARCELA,ID,geometry)%>% mutate(Manzana_num =as.numeric(MANZANA))
#Los bis sirven para definir la escala de colores, y se crea la variable pal para definir los que columna usar
bins <- c(1,2,5,6,7,8,9) pal <- colorBin(“YlOrRd”, domain = baseb31_basic$Manzana_num, bins = bins)
ui = dashboardPage( skin = “red”, dashboardHeader(title = “Barrio 31”), dashboardSidebar( sliderInput(“Manzana_num”, label = “FiltroManzana”, min =min(baseb31_basic\(Manzana_num), max = max(baseb31_basic\)Manzana_num), value = c(min(baseb31_basic\(Manzana_num),max(baseb31_basic\)Manzana_num)), sep = "", step = 1)
),
dashboardBody(
fluidRow(box(width = 12, leafletOutput(outputId = "mymap"))),
fluidRow(box(width = 12, dataTableOutput(outputId = "summary_table")))
)
)
server <- function(input, output) {
data_input = reactive({
baseb31_basic %>%
filter(Manzana_num >= input$Manzana_num[1])%>%
filter(Manzana_num <= input$Manzana_num[2])
})
data_input_ordered = reactive({
data_input()[order(match(data_input()$Manzana_num, baseb31_basic$Manzana_num))]
})
labels <- reactive ({ sprintf(
"<strong>%d</strong>",
baseb31_basic$Manzana_num
) %>% lapply(htmltools::HTML)
})
output$mymap = renderLeaflet(
leaflet(st_zm(baseb31_basic) %>% st_transform(4326)) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(color = "black", fill = FALSE, weight = 2,group = "Borde") %>%
addPolygons(
fillColor = ~pal(data_input_ordered()$Manzana_num),
weight = 2,
opacity = 1,
color = "black",
dashArray = "3",
fillOpacity = 0.7,
highlight = highlightOptions(
weight = 5,
color = "red",
dashArray = "",
fillOpacity = 0.7,
bringToFront = TRUE
),
label = labels) %>%
addLegend(pal = pal,
values = ~data_input_ordered()$Manzana_num,
opacity = 0.7,
title = NULL,
position = "bottomright")
)
output$summary_table = renderDataTable(data_input())
}
shinyApp(ui = ui, server = server)
Listening on http://127.0.0.1:5877 Warning: Error in as.vector: cannot coerce type ‘closure’ to vector of type ‘character’ 113: as.character.default 111: htmltools::htmlEscape 110: safeLabel 103: addPolygons 102: function_list[[i]] 101: freduce 100: _fseq 99: eval 98: eval 96: %>% 95: func 82: origRenderFunc 81: output$mymap 1: runApp
library(shiny)
library(leaflet)
library(shinydashboard)
##
## Attaching package: 'shinydashboard'
## The following object is masked from 'package:graphics':
##
## box
library(rgdal)
## Loading required package: sp
## rgdal: version: 1.5-12, (SVN revision 1018)
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 3.0.4, released 2020/01/28
## Path to GDAL shared files: C:/Users/User/Documents/R/win-library/4.0/rgdal/gdal
## GDAL binary built with GEOS: TRUE
## Loaded PROJ runtime: Rel. 6.3.1, February 10th, 2020, [PJ_VERSION: 631]
## Path to PROJ shared files: C:/Users/User/Documents/R/win-library/4.0/rgdal/proj
## Linking to sp version:1.4-2
## To mute warnings of possible GDAL/OSR exportToProj4() degradation,
## use options("rgdal_show_exportToProj4_warnings"="none") before loading rgdal.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(gsheet)
library(DT)
##
## Attaching package: 'DT'
## The following objects are masked from 'package:shiny':
##
## dataTableOutput, renderDataTable
library(sf)
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
library(tidyverse)
## -- Attaching packages --------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2 v purrr 0.3.4
## v tibble 3.0.1 v stringr 1.4.0
## v tidyr 1.1.0 v forcats 0.5.0
## v readr 1.3.1
## -- Conflicts ------------------------------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(shapefiles)
## Loading required package: foreign
##
## Attaching package: 'shapefiles'
## The following objects are masked from 'package:foreign':
##
## read.dbf, write.dbf
library(htmltools)
data = gsheet2tbl('https://docs.google.com/spreadsheets/d/1EDk3Ofi1M6U4Piv_QU8tA65WtrLo0OWtr9nUEhMHXnc/edit?usp=sharing')
dataparaunir = data
baseb31 = st_read("b31_3.shp")
## Reading layer `b31_3' from data source `C:\Users\User\Desktop\POSTgis\b31_3.shp' using driver `ESRI Shapefile'
## Simple feature collection with 190 features and 13 fields
## geometry type: POLYGON
## dimension: XYZ
## bbox: xmin: -58.3777 ymin: -34.58472 xmax: -58.37582 ymax: -34.58332
## z_range: zmin: -0.01046138 zmax: 307.3997
## geographic CRS: WGS 84
baseb31_basic = baseb31 %>%
select(SECTOR,MANZANA,PARCELA,ID,geometry)%>%
mutate(Manzana_num =as.numeric(MANZANA))
labels <- sprintf(
"<strong> ID %s</strong><br/>Sector %s<br/>Manzana %g<br/>Parcela %s",
baseb31_basic$ID, baseb31_basic$SECTOR, baseb31_basic$Manzana_num, baseb31_basic$PARCELA
) %>% lapply(htmltools::HTML)
labels <- sprintf(
"<strong>%d</strong>",
baseb31_basic$Manzana_num
) %>% lapply(htmltools::HTML)
#Los bis sirven para definir la escala de colores, y se crea la variable pal para definir los que columna usar
bins <- c(1,2,5,6,7,8,9)
pal <- colorBin("YlOrRd", domain = baseb31_basic$Manzana_num, bins = bins)
leaflet(st_zm(baseb31_basic) %>% st_transform(4326)) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(color = "black", fill = FALSE, weight = 2,group = "Borde") %>%
addPolygons(
fillColor = ~pal(Manzana_num),
weight = 2,
opacity = 1,
color = "black",
dashArray = "3",
fillOpacity = 0.7,
highlight = highlightOptions(
weight = 5,
color = "red",
dashArray = "",
fillOpacity = 0.7,
bringToFront = TRUE
),
label = labels) %>%
addLegend(pal = pal,
values = ~(Manzana_num),
opacity = 0.7,
title = NULL,
position = "bottomright")