En R contamos con varios paquete de funciones que permiten manipular información espacial con facilidad. sp,sf,Gdal,raster,mapview,tmap, etc.
library(sf)
## Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
library(ggplot2)
## Registered S3 methods overwritten by 'ggplot2':
## method from
## [.quosures rlang
## c.quosures rlang
## print.quosures rlang
ctes <- st_read("municipios_2010_geo.shp")
## Reading layer `municipios_2010_geo' from data source `C:\Users\Los Mourglia\Desktop\mapa\municipios_2010_geo.shp' using driver `ESRI Shapefile'
## Simple feature collection with 72 features and 1 field
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: -59.67116 ymin: -30.72375 xmax: -55.6203 ymax: -27.25331
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
ggplot(ctes) +
geom_sf()
mapview::mapview(ctes,labels=F)
library(tmap)
data("World")
tm_shape(ctes) +
tm_polygons()
tm_shape(World) +
tm_polygons("HPI")
Agregamos Interactividad
tmap_mode("view")
## tmap mode set to interactive viewing
tm_shape(World) +
tm_polygons("HPI") # Indice de Precio de Vivienda
Leaflet es una de las bibliotecas de JavaScript de codigo abierto mas populares para mapas interactivos. Lo utilizan sitios web que van desde The New York Times y The Washington Post hasta GitHub y Flickr, asi como especialistas en SIG como OpenStreetMap, Mapbox y CartoDB.
Este paquete R facilita la integracion y el control de los mapas de leaflet en R.
Hacer mapas utilizando combinaciones arbitrarias de: - Map tiles - Markers - Polygons - Lines - Popups - GeoJSON
Aumentar las caracteristicas del mapa usando los complementos elegidos del repositorio de complementos de Leaflet
Uso basico
Crea un mapa con Leaflet con estos pasos basicos:
Cree un widget de mapa llamando al leaflet(). Agregue capas (es decir, caracteristicas) al mapa usando funciones de capa (por ejemplo, addTiles, addMarkers, addPolygons) para modificar el widget del mapa. Repita el paso 2 como desee. Imprima el widget del mapa para visualizarlo.
library(leaflet)
leaflet() %>%
addTiles() %>% # Map tiles OpenStreetMap
addMarkers(lng=-58.9792024, lat=-27.4609834, popup="FLISOL Resistencia")
Si no especifico el Proveedor de Map Tile, usa el de OpenStreeetMap, sino se puedo llamar a otro con la funcion addProviderTiles().
library(leaflet)
leaflet() %>%
addProviderTiles(providers$Stamen.Toner)%>%
addMarkers(lng=-58.9792024, lat=-27.4609834, popup="FLISOL Resistencia")
library(leaflet)
leaflet() %>%
addProviderTiles(providers$Stamen.Terrain)%>%
addMarkers(lng=-58.9792024, lat=-27.4609834, popup="FLISOL Resistencia")
Primero cargos las Librerias que necesito, Luego cargo el archivo de Escuelas Secundarias y lo grafico.
library(leaflet)
library(leaflet.extras)
library(readxl)
# library(sp)
datos<-read.csv("escuelas secundarias.csv") # Escuelas secundarias
leaflet(datos) %>% addTiles() %>% addProviderTiles(providers$CartoDB.Positron) %>%
#addBootstrapDependency() %>%
addMarkers(data=datos,
lng=~Longitud, lat=~Latitud,
label=~Cueanexo,
popup = paste0("Nombre:", as.character(datos$Cueanexo)),
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = F),
labelOptions = labelOptions(noHide = F,
direction = 'auto'))
Agrego al costado Barra de Herramientas de Dibujo
leaflet(datos) %>% addTiles() %>% addProviderTiles(providers$CartoDB.Positron) %>%
#addBootstrapDependency() %>%
addMarkers(data=datos,
lng=~Longitud, lat=~Latitud,
label=~Cueanexo,
popup = paste0("Nombre:", as.character(datos$Cueanexo)),
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = F),
labelOptions = labelOptions(noHide = F,
direction = 'auto'))%>%
addDrawToolbar(
targetGroup='datos',
editOptions = editToolbarOptions(selectedPathOptions = selectedPathOptions()))
Leo un archivo .xlsx con las Escuelas Primarias
prima<-read_xlsx("escuelas primarias.xlsx")
leaflet(datos) %>% addTiles() %>% addProviderTiles(providers$CartoDB.Positron) %>%
#addBootstrapDependency() %>%
addMarkers(data=datos,
lng=~Longitud, lat=~Latitud,
label=~Cueanexo,
popup = paste0("Nombre:", as.character(datos$Cueanexo)),
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = F),
labelOptions = labelOptions(noHide = F,
direction = 'auto'))%>%
addCircleMarkers(data=prima,
lng=~Longitud, lat=~Latitud,
label=~Cueanexo,
#icon= icons,
popup = paste0("Nombre: ", as.character(prima$Nombre)),
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = F),
labelOptions = labelOptions(noHide = F,
direction = 'auto')) %>%
addDrawToolbar(
targetGroup='datos',
editOptions = editToolbarOptions(selectedPathOptions = selectedPathOptions()))
Agrego un a rchivo desde un servidor de mapas Geoserver
leaflet(datos) %>% addTiles() %>% addProviderTiles(providers$CartoDB.Positron) %>%
#addBootstrapDependency() %>%
addMarkers(data=datos,
lng=~Longitud, lat=~Latitud,
label=~Cueanexo,
popup = paste0("Nombre:", as.character(datos$Cueanexo)),
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = F),
labelOptions = labelOptions(noHide = F,
direction = 'auto'))%>%
addCircleMarkers(data=prima,
lng=~Longitud, lat=~Latitud,
label=~Cueanexo,
#icon= icons,
popup = paste0("Nombre: ", as.character(prima$Nombre)),
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = F),
labelOptions = labelOptions(noHide = F,
direction = 'auto')) %>%
addWMSTiles(
"http://geoportal.corrientes.gob.ar/geoserver/wms/",
layers = "Municipios",
options = WMSTileOptions(format = "image/png", transparent = T, opacity= 0.4),
attribution = "Municipios de Corrientes é 2018 Ide Corr"
) %>%
addDrawToolbar(
targetGroup='datos',
editOptions = editToolbarOptions(selectedPathOptions = selectedPathOptions()))