library(tidygeocoder)
library(sf)
library(tidyverse)
library(leaflet)
library(osrm)
CONSIGNA: PARTE 1
casa_rosada <- geo(address = "Balcarce 50, CABA, Buenos Aires, Argentina",
method = "osm")
leaflet(casa_rosada) %>%
addTiles() %>%
addMarkers(~long, ~lat)
caba_comisarias <- read.csv("data/caba_comisarias.csv",
encoding = "UTF-8",
stringsAsFactors = TRUE)
dim(caba_comisarias)
## [1] 49 2
head(caba_comisarias)
## nombre direccion
## 1 Comisaria Vecinal 1-D LAVALLE 451
## 2 Comisaria Vecinal 5-B MUÑIZ 1250
## 3 Comisaria Vecinal 6-A DIAZ VELEZ AV. 5152
## 4 Comisaria Vecinal 7-B VALLE 1454
## 5 Comisaria Comunal 6 AVELLANEDA AV. 1548
## 6 Comisaria Comunal 1 SUIPACHA 1156
caba_comisarias <- caba_comisarias %>%
mutate(direccion= paste(direccion, ", Ciudad de Buenos Aires, Argentina", sep = ""))
Sys.sleep(1)
caba_comisarias <- caba_comisarias %>%
geocode(address = direccion, method= "osm")
Stamen Terrain leaflet() %>% addProviderTiles(providers$Stamen.Terrain) %>% setView(lng = -73.97, lat = 40.77, zoom = 12)
Stamen Toner leaflet() %>% addProviderTiles(providers$Stamen.Toner) %>% setView(lng = -73.97, lat = 40.77, zoom = 12)
Stamen Watercolor leaflet() %>% addProviderTiles(providers$Stamen.Watercolor) %>% setView(lng = -73.97, lat = 40.77, zoom = 12)
CartoDB Positron leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>% setView(lng = -73.97, lat = 40.77, zoom = 12)
CartoDB DarkMatter leaflet() %>% addProviderTiles(providers$CartoDB.DarkMatter) %>% setView(lng = -73.97, lat = 40.77, zoom = 12)
leaflet(caba_comisarias) %>%
addProviderTiles(providers$CartoDB.DarkMatter) %>%
addMarkers(~long, ~ lat,
popup= ~direccion )
isocrona <- osrmIsochrone(loc = c(casa_rosada$long, casa_rosada$lat),
breaks = c(0, 10),
res = 35,
osrm.profile = "car")
leaflet(isocrona) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(fillColor = ~colorBin("YlOrRd", domain = isocrona$isomax)(isomax),
color = NA,
fillOpacity = 0.5)%>%
addMarkers(data= casa_rosada) %>%
addMiniMap(tiles=providers$CartoDB.Positron)
st_crs(isocrona)
## Coordinate Reference System:
## User input: EPSG:4326
## wkt:
## GEOGCRS["WGS 84",
## ENSEMBLE["World Geodetic System 1984 ensemble",
## MEMBER["World Geodetic System 1984 (Transit)"],
## MEMBER["World Geodetic System 1984 (G730)"],
## MEMBER["World Geodetic System 1984 (G873)"],
## MEMBER["World Geodetic System 1984 (G1150)"],
## MEMBER["World Geodetic System 1984 (G1674)"],
## MEMBER["World Geodetic System 1984 (G1762)"],
## MEMBER["World Geodetic System 1984 (G2139)"],
## ELLIPSOID["WGS 84",6378137,298.257223563,
## LENGTHUNIT["metre",1]],
## ENSEMBLEACCURACY[2.0]],
## PRIMEM["Greenwich",0,
## ANGLEUNIT["degree",0.0174532925199433]],
## CS[ellipsoidal,2],
## AXIS["geodetic latitude (Lat)",north,
## ORDER[1],
## ANGLEUNIT["degree",0.0174532925199433]],
## AXIS["geodetic longitude (Lon)",east,
## ORDER[2],
## ANGLEUNIT["degree",0.0174532925199433]],
## USAGE[
## SCOPE["Horizontal component of 3D system."],
## AREA["World."],
## BBOX[-90,-180,90,180]],
## ID["EPSG",4326]]
caba_comisarias_geo <- caba_comisarias %>%
st_as_sf(coords = c("long", "lat"), crs=4326)
sf_use_s2(FALSE)
caba_comisarias_geo <- st_intersection(caba_comisarias_geo, isocrona)
caba_comisarias_geo
## Simple feature collection with 19 features and 5 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: -58.41684 ymin: -34.64722 xmax: -58.36067 ymax: -34.58755
## Geodetic CRS: WGS 84
## # A tibble: 19 × 6
## nombre direccion id isomin isomax geometry
## * <fct> <chr> <int> <dbl> <dbl> <POINT [°]>
## 1 Comisaria Vecinal 1-D LAVALLE … 1 0 10 (-58.37325 -34.60199)
## 2 Comisaria Vecinal 6-A DIAZ VEL… 1 0 10 (-58.41684 -34.60841)
## 3 Comisaria Comunal 1 SUIPACHA… 1 0 10 (-58.38004 -34.59465)
## 4 Comisaria Vecinal 1-… SAN JOSE… 1 0 10 (-58.3852 -34.62235)
## 5 Comisaria Comunal 2 LAS HERA… 1 0 10 (-58.39722 -34.58755)
## 6 Comisaria Vecinal 1-C AV. SAN … 1 0 10 (-58.39073 -34.62252)
## 7 Comisaria Vecinal 2-B CHARCAS … 1 0 10 (-58.40664 -34.59398)
## 8 Comisaria Vecinal 1-… PERU 105… 1 0 10 (-58.3745 -34.60858)
## 9 Comisaria Vecinal 3-B CATAMARC… 1 0 10 (-58.40311 -34.6261)
## 10 Comisaria Vecinal 1-E AV. INGE… 1 0 10 (-58.36385 -34.6243)
## 11 Comisaria Vecinal 4-C PINZON 4… 1 0 10 (-58.36067 -34.6341)
## 12 Comisaria Vecinal 4-… MONTES D… 1 0 10 (-58.37433 -34.63919)
## 13 Comisaria Vecinal 1-A TUCUMAN … 1 0 10 (-58.38895 -34.60185)
## 14 Comisaria Vecinal 4-D CALIFORN… 1 0 10 (-58.37469 -34.64722)
## 15 Comisaria Vecinal 1-B TACUARI … 1 0 10 (-58.37862 -34.61724)
## 16 Comisaria Comunal 3 LAVALLE … 1 0 10 (-58.39482 -34.60341)
## 17 Comisaria Vecinal 3-A LAVALLE … 1 0 10 (-58.4041 -34.6033)
## 18 Comisaria Vecinal 3-… GENERAL … 1 0 10 (-58.40935 -34.61707)
## 19 Comisaria Comunal 5 BILLINGH… 1 0 10 (-58.41556 -34.60443)
leaflet(isocrona) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(fillColor = ~colorBin("Purples", domain = isocrona$isomax)(isomax),
color = NA,
fillOpacity = 0.5) %>%
addMarkers(data=casa_rosada,
popup = "Casa Rosada") %>%
addCircles(data=caba_comisarias_geo,
popup = ~nombre,
color = "black")%>%
addMiniMap(tiles=providers$CartoDB.Positron)
CONSIGNA: PARTE 2
ruteo_funcion <- function(nombre_origen, lon_origen, lat_origen,
nombre_destino, lon_destino, lat_destino)
{
ruta <- osrmRoute(src = c(lon_origen, lat_origen),
dst = c(lon_destino, lat_destino),
overview = "full",
osrm.profile = "car")
ruta %>%
mutate(src=nombre_origen,
dst=nombre_destino)
}
caba_comisarias_geo <- caba_comisarias_geo %>%
mutate(long = st_coordinates(.)[,1],
lat = st_coordinates(.)[,2]) %>%
st_drop_geometry()
ruteo <- list("Casa Rosada", casa_rosada$long, casa_rosada$lat,
caba_comisarias_geo$nombre, caba_comisarias_geo$long, caba_comisarias_geo$lat)
ruteo <- pmap(ruteo, ruteo_funcion)
summary(ruteo)
## Length Class Mode
## [1,] 5 sf list
## [2,] 5 sf list
## [3,] 5 sf list
## [4,] 5 sf list
## [5,] 5 sf list
## [6,] 5 sf list
## [7,] 5 sf list
## [8,] 5 sf list
## [9,] 5 sf list
## [10,] 5 sf list
## [11,] 5 sf list
## [12,] 5 sf list
## [13,] 5 sf list
## [14,] 5 sf list
## [15,] 5 sf list
## [16,] 5 sf list
## [17,] 5 sf list
## [18,] 5 sf list
## [19,] 5 sf list
ruteo <- ruteo %>%
reduce(rbind)
leaflet(ruteo) %>%
addProviderTiles(providers$CartoDB.DarkMatter) %>%
addPolylines(color= "turquoise",
label= paste("Distancia:", ruteo$distance, "|",
"Duración:", ruteo$duration)) %>%
addCircleMarkers(data= casa_rosada, ~long, ~lat,
popup = "Casa Rosada",
color= "black") %>%
addCircleMarkers(data=caba_comisarias_geo, ~long, ~lat,
popup = ~nombre,
color= "white") %>%
addMiniMap(tiles = providers$CartoDB.DarkMatter)