• Saltar a la navegación principal
  • Saltar al contenido principal
Geoinnova

Consultoría y Formación en SIG, Territorio y Medio Ambiente

  • Geoinnova
    • Quiénes somos
    • Coworking
    • Alianzas Estratégicas
    • Visor de proyectos Geoinnova
  • SIG y Desarrollo
    • Plugins QGIS
    • GeoNode
    • QElectricGIS
    • Planero Web
  • Consultoría Territorial
    • Planes de Emergencia Municipales de Protección Civil
    • Planes Urbanos de Actuación Municipal – PUAM
    • Evaluación Ambiental Estratégica de planes y programas
    • Minimización de Impacto Territorial y Declaración de Situación Individualizada en suelo no urbanizable
    • Turismo sostenible
  • Consultoría Ambiental
    • Trámites de Economía Circular
    • Prevención y gestión ambiental
    • Responsabilidad social corporativa
    • Estrategia de sostenibilidad
  • Formación
    • Todos los cursos
    • Formación para empresas
    • Máster y Diplomas
    • Cursos de QGIS Online Certificados
    • Cursos de programación, desarrollo SIG y geoservicios
    • Cursos de Teledetección
    • Cursos de Giswater
    • Cursos de SIG con ArcGIS
    • Cursos de Medio Ambiente
    • Campus
  • Divulgación
    • Blog
    • Tertulia Territorio Geoinnova
    • TFMs y otro trabajos de alumnos
    • Noticias
    • Webinars
    • Geolibrería
  • Contacto
    • Soporte – Tickets
Programación y Desarrollo SIG APÚNTATE
Programación y Desarrollo SIG SIG

Librería mapSpain para el acceso de información espacial en R

24/10/2023 Deja un comentario

La librería mapSpain para el acceso a información espacial en R permite acceder a un catalogo de datos espaciales en abierto de España para su descarga. Los datos provienen principalmente de la base de datos GISCO de Eurostat y la CartoBase SIANE del Instituto Geográfico Nacional. Permite obtener y descargar la información espacial en formatos estandar de R y posteriormente exportarla a los distintos formatos (.shp, .gpkg, etc.).

Funcionalidades principales de mapSpain

mapSpain es una librería de R que te permite trabajar con datos espaciales de España de una forma sencilla y eficiente. Además de visualizar los límites administrativos de España, puedes usar esta librería para hacer otras cosas, como:

  • Obtener capas de información espacial desde repositorios oficiales: datos demográficos, económicos, sociales, etc.
  • Crear mapas temáticos o mapas de coropletas, que muestran la distribución de una variable por zonas geográficas.
  • Descargar y procesar teselas estáticas de instituciones públicas de España como imágenes a una determinada resolución.
  • Representar la información a través de otras librerías como leaflet.
  • Permite añadir teselas de instituciones públicas de España: IGN, CNIG, ICV o IDEE.

Además, te permite obtener y visualizar los límites administrativos de España a varios niveles (comunidades autónomas, provincias, municipios) utilizando el formato estándar sf y la posibilidad de descargar y procesar teselas estáticas. En este artículo, te voy a mostrar cómo puedes usar esta librería para explorar y analizar datos espaciales de España con R.

Acceso a datos con mapSpain

# Instalar mapSpain desde CRAN
install.packages("mapSpain")
# Cargar mapSpain
library(mapSpain)

Una vez cargada la librería, vamos a cargar el objeto nuts, que contiene las divisiones administrativas de la Nomenclatura de las Unidades Territoriales Estadísticas (NUTS), correspondientes a las comunidades autónomas (CCAA) y provincias en los niveles 2 y 3.

# Ver la estructura del objeto esp_nuts.sf
nuts <- esp_nuts.sf
print(nuts)
## Simple feature collection with 86 features and 9 fields
## Geometry type: GEOMETRY
## Dimension:     XY
## Bounding box:  xmin: -18.15997 ymin: 27.63848 xmax: 4.320511 ymax: 43.78793
## Geodetic CRS:  ETRS89
## First 10 features:
##     COAST_TYPE  FID              NUTS_NAME MOUNT_TYPE              NAME_LATN
## 12           0   ES                ESPAÑA           0                ESPAÑA 
## 69           0  ES4            CENTRO (ES)          0            CENTRO (ES)
## 70           0  ES7               CANARIAS          0               CANARIAS
## 81           0  ES2                NORESTE          0                NORESTE
## 83           0  ES1               NOROESTE          0               NOROESTE
## 84           0  ES3    COMUNIDAD DE MADRID          0    COMUNIDAD DE MADRID
## 85           0  ES6                    SUR          0                    SUR
## 86           0  ES5                   ESTE          0                   ESTE
## 137          0 ES53          Illes Balears          0          Illes Balears
## 173          0 ES12 Principado de Asturias          0 Principado de Asturias
##     CNTR_CODE URBN_TYPE NUTS_ID LEVL_CODE                       geometry
## 12         ES         0      ES         0 MULTIPOLYGON (((-7.699736 4...
## 69         ES         0     ES4         1 MULTIPOLYGON (((-4.737023 4...
## 70         ES         0     ES7         1 MULTIPOLYGON (((-16.12726 2...
## 81         ES         0     ES2         1 MULTIPOLYGON (((-2.412847 4...
## 83         ES         0     ES1         1 MULTIPOLYGON (((-7.699736 4...
## 84         ES         0     ES3         1 MULTIPOLYGON (((-3.067689 4...
## 85         ES         0     ES6         1 MULTIPOLYGON (((-1.02687 38...
## 86         ES         0     ES5         1 MULTIPOLYGON (((0.858215 42...
## 137        ES         0    ES53         2 MULTIPOLYGON (((3.176714 39...
## 173        ES         0    ES12         2 MULTIPOLYGON (((-4.512301 4...

También es posible acceder al objeto esp_munic.sf que contiene la información espacial a nivel municipal. A través de esta capa podemos obtener información de distintos campos de interés.

# Ver la estructura del objeto esp_munic.sf
municipios <- esp_munic.sf
print(municipios)
## Simple feature collection with 8131 features and 7 fields
## Geometry type: GEOMETRY
## Dimension:     XY
## Bounding box:  xmin: -18.15999 ymin: 27.63814 xmax: 4.32409 ymax: 43.7889
## Geodetic CRS:  ETRS89
## First 10 features:
##     codauto ine.ccaa.name cpro ine.prov.name cmun                 name LAU_CODE
## 382      01     Andalucía   04       Almería  001                 Abla    04001
## 379      01     Andalucía   04       Almería  002             Abrucena    04002
## 374      01     Andalucía   04       Almería  003                 Adra    04003
## 375      01     Andalucía   04       Almería  004            Albánchez    04004
## 358      01     Andalucía   04       Almería  005            Alboloduy    04005
## 373      01     Andalucía   04       Almería  006                Albox    04006
## 350      01     Andalucía   04       Almería  007              Alcolea    04007
## 364      01     Andalucía   04       Almería  008             Alcóntar    04008
## 352      01     Andalucía   04       Almería  009 Alcudia de Monteagud    04009
## 349      01     Andalucía   04       Almería  010              Alhabia    04010
##                           geometry
## 382 POLYGON ((-2.77744 37.23836...
## 379 POLYGON ((-2.88984 37.09213...
## 374 POLYGON ((-2.93161 36.75079...
## 375 POLYGON ((-2.13138 37.29959...
## 358 POLYGON ((-2.70077 37.09674...
## 373 POLYGON ((-2.15335 37.54576...
## 350 POLYGON ((-3.05663 36.88506...
## 364 POLYGON ((-2.65344 37.33238...
## 352 POLYGON ((-2.27371 37.2416,...
## 349 POLYGON ((-2.5425 36.97485,...

Por tanto, a través de esta librería podemos acceder a información espacial de carácter administrativo como pueden ser los límites estatales, comunidades autónomas, provincias, comarcas y/o municipios .

Estandar sf

Los objetos utilizados por mapSpain son del tipo simple features (sf). Este modelo de datos refiere al ISO 19125-1:2004, que establece una arquitectura común para la información espacial. Es decir, este formato es compatible con el paquete sf y con otras librerías que trabajan con datos espaciales en R, por lo que podemos utilizar estos datos junto a otras librerías.

Recuerda:

A partir de octubre, las librerías rgdal, rgeos y maptools serán retiradas y sus funciones serán sustituidas por otras librerías, entre ellas sf y terra. Si quieres saber más, tal vez te interese la nueva actualización del Curso de Análisis Espacial con R.

Puedes ver la estructura de datos del objeto con el comando str:

#Estructura del elemento municipios
str(municipios)
## Classes 'sf' and 'data.frame':   8131 obs. of  8 variables:
##  $ codauto      : chr  "01" "01" "01" "01" ...
##  $ ine.ccaa.name: chr  "Andalucía" "Andalucía" "Andalucía" "Andalucía" ...
##  $ cpro         : chr  "04" "04" "04" "04" ...
##  $ ine.prov.name: chr  "Almería" "Almería" "Almería" "Almería" ...
##  $ cmun         : chr  "001" "002" "003" "004" ...
##  $ name         : chr  "Abla" "Abrucena" "Adra" "Albánchez" ...
##  $ LAU_CODE     : chr  "04001" "04002" "04003" "04004" ...
##  $ geometry     :sfc_GEOMETRY of length 8131; first list element: List of 1
##   ..$ : num [1:31, 1:2] -2.78 -2.78 -2.76 -2.75 -2.75 ...
##   ..- attr(*, "class")= chr [1:3] "XY" "POLYGON" "sfg"
##  - attr(*, "sf_column")= chr "geometry"
##  - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA NA NA NA NA NA
##   ..- attr(*, "names")= chr [1:7] "codauto" "ine.ccaa.name" "cpro" "ine.prov.name" ...

Cada objeto tiene una columna llamada geometry que contiene las coordenadas de los polígonos que definen los límites. También tiene otras columnas con información adicional:

  • codauto:  código de la comunidad autónoma
  • ine.ccaa.name: nombre de la comunidad autónoma
  • cpro: código de la provincia
  • ine.prov.name: nombre de la provincia
  • cmun: código del municipio
  • name: nombre del municipio
  • LAU_CODE: combinación de código cpro y cmun (equivalente a código INE)

Para visualizar estos objetos, podemos utilizar la función plot de R:

# Visualizar el mapa de las CCAA con plot
plot(nuts)

Al ser objetos espaciales compatibles con los formatos estándar, podemos utilizar otras librerías para ayudarnos de sus funcionalidades. Para ello vamos a utilizar la librería “leaflet” que nos permite crear un mapa de leaflet de forma rápida.

A través del mapa creado, podemos acceder a la información alfanumérica almacenada en cada objeto espacial, simplemente haciendo clic sobre el mapa:

# Visualizar capas de Comarcas y Rovincias
library(leaflet)
# Crear un mapa
m <- leaflet() %>%
  addProviderTiles(providers$OpenStreetMap)  # Agrega un proveedor de mapas (en este caso, OpenStreetMap)
# Agregar la capa espacial a tu mapa
m <- m %>%
  addPolygons(
    data = mapSpain::esp_get_comarca(),
    fillColor = "green",
    fillOpacity = 0.7,
    color = "black",
    weight = 1,
    group = "Comarcas",
    popup = ~paste(
      "Comarca: ", name,
      "<br>Provincia: ", ine.prov.name,
      "<br>Comunidad Autónoma: ", ine.ccaa.name
    )
  ) %>%
  
  addPolygons(
    data = mapSpain::esp_get_prov(),
    fillColor = "gray",
    fillOpacity = 0.7,
    color = "black",
    weight = 1,
    group = "Provincias",
    popup = ~paste(
      "Provincia: ", ine.prov.name,
      "<br>Comunidad Autónoma: ", nuts2.name
    )
  )

Además, vamos a añadir un control de capas y un popup para poder identificar los objetos espaciales.

m <- m %>%
  addLayersControl(
    overlayGroups = c("Provincias","Comarcas"),
    options = layersControlOptions(collapsed = FALSE)
  )
m

Descarga de tiles con mapSpain

La librería mapSpain, a través de la función esp_getTiles() permite obtener un objeto de tipo SpatRaster, con las teselas vectoriales de algunos servicios WMS disponibles. A través de este objeto podemos trabajar con las tiles e incluso descargarlas.

La función esp_tiles_providers permite obtener el listado de todos los servicios WMS disponibles:

#Obtención de los tiles disponibles
tiles = mapSpain::esp_tiles_providers
head(tiles,5)
## $IDErioja
## $IDErioja$static
## $IDErioja$static$attribution
## [1] "CC BY 4.0 www.iderioja.org"
## 
## $IDErioja$static$q
## [1] "https://rts.larioja.org/mapa-base/rioja/{z}/{x}/{y}.png"
## 
## $IDErioja$leaflet
## $IDErioja$leaflet$attribution
## [1] "CC BY 4.0 <a href='https://www.iderioja.org'>www.iderioja.org</a>"
## 
## $IDErioja.Base
## $IDErioja.Base$static
## $IDErioja.Base$static$attribution
## [1] "CC BY 4.0 www.iderioja.org"
## 
## $IDErioja.Base$static$q
## [1] "https://rts.larioja.org/mapa-base/rioja/{z}/{x}/{y}.png"

Una vez hemos localizado el servicio que queremos, podemos obtener ese servicio con la función esp_getTiles. La función debe utilizar un objeto sf para realizar un clip sobre un servicio. A continuación, se detalla cómo obtener el mapa base de la IDE para los municipios de Teruel utilizando la función esp_get_munic_siane, que nos permite identificar los municipios que conforman una región (comunidad autónoma, provincia, etc.).

#Selección de todos los municipios de la Rioja
teruel_municipios <- esp_get_munic_siane(region = "Teruel", epsg = 4326)
# mapview(teruel_municipios)
# Crear un mapa
m <- leaflet() %>%
  addProviderTiles(providers$OpenStreetMap)  # Agrega un proveedor de mapas (en este caso, OpenStreetMap)
# Agregar la capa espacial a tu mapa
m <- m %>%
  addPolygons(
    data = teruel_municipios,
    fillColor = "green",
    fillOpacity = 0.7,
    color = "black",
    weight = 1,
    group = "Municipios",
    popup = ~paste(
      "Municipio: ", name
    )
  )
      
  
m <- m %>%
  addLayersControl(
    overlayGroups = c("Municipios"),
    options = layersControlOptions(collapsed = FALSE)
  )
m

Ahora utilizamos la función indicada para obtener las teselas del IGN para esa zona. Establecemos el parámetro zoommin en 5 para que tengan algo más de detalle.

#Obtención del mapa base de IDErioja
base_teruel <- esp_getTiles(teruel_municipios, "IGNBase",
  bbox_expand = 0.1,
  zoommin = 5
)

Ahora, vamos a guardar el tileado en un archivo ráster “.tif”. Para ello vamos a cargar la librería terra y la función writeRaster.

#Cargar librería terra
library(terra)
#Concatenar ruta salida
file <- file.path(r"(C:\Users\Win10\Downloads)","tiles_teruel.tif")
terra::writeRaster(base_teruel, file, filetype = "GTiff", overwrite = TRUE)

Vamos a abrir el archivo con QGIS para comprobar que la exportación se ha realizado correctamente:

Visualización de la capa exportada en QGIS

Resumen de funciones de mapSpain para el acceso a información espacial

A continuación, os dejamos un listado de funciones destacadas de mapSpain:

  • Información administrativa
    • Límites de España
    • Comunidades autónomas
    • Provincias
    • Comarcas
    • Municipios
    • Centro de poder del municipio (ayuntamiento)
    • Mapa simplificado de Provincias y Comunidades de España
  • Información temática de referencia a nivel estatal
    • Ríos, canales, embalses y otros humedales de España. La información puede ser obtenido en formato líneas o polígonos.
    • Demarcaciones de cuencas hidrográficas.
    • Hipsometría y batimetría.
    • Vías de ferrocarril. Permite diferenciar por tipos (ferrocarriles autonómicos, vía ancha, vía doble y via simple) y estado de electrificación.
    • Principales carreteras de España: autopistas de peaje, autopistas, autovías y doble calzada, red de carreteras del Estado y otras carreteras.
  • Representación espacial
    • Grids de referencia IGN (en distintas proyecciones y dividido por ámbitos: Península y Baleares, Ceuta y Melilla y Canarias)
    • MTN25
    • MTN50
    • Otros grids:
      • Banco de Datos de la Naturaleza (BDN)
      • Agencia Europa del Medioambiente (EEA)
      • Centro Europeo de Datos del Suelo (ESDAC)
    • Otros
      • Grid hexagonal
      • Grid en cuadrícula
  • Listado de servicios WMS y WMTS libres de España
  • Otras
    • Traducción de nombres
    • Líneas o polígonos para la inserción de las Islas Canarias

En definitiva, mapSpain permite el acceso a información espacial en R y se convierte en una herramienta valiosa para aquellos que trabajan con datos geoespaciales de España. Facilita la descarga, manipulación y análisis de datos geoespaciales, lo que lo convierte en una herramienta imprescindible para trabajar en R. Si deseas trabajar con información espacial oficial, mapSpain te puede ayudar.

Si quieres saber más sobre esta librería puedes consultar el Curso de Análisis Espacial con R.

Referencias

Hernangómez D (2023).  mapSpain: Administrative Boundaries of Spain.  doi:10.5281/zenodo.5366622, https://ropenspain.github.io/mapSpain/.

Apúntate a nuestra newsletter semanal

"*" señala los campos obligatorios

Este campo es un campo de validación y debe quedar sin cambios.
Consentimiento*

Artículos relacionados

centro-de-datos-sostenibles-en-España-geoinnova-sostenibilidad
Centros de datos sostenibles en España: los nuevos requisitos de energía, agua y renovables que plantea el Gobierno
01/09/2026
GeoServer-3-desarrollo-SIG-programación-web-GIS-Geoinnova
GeoServer 3: cambios en la interfaz, requisitos de sistema y checklist de migración
07/09/2026
cómo-digitalizar-en-Qgis-geoinnova-sig
Cómo digitalizar en QGIS: Guía completa paso a paso
01/09/2026

Miquel Febrer

Graduado en Geografía por la Universitat de les Illes Balears (2011-2015) y Máster en Tecnologías de la Información Geográfica para la Ordenación del Territorio (2016-2017) por la Universidad de Zaragoza. Desde 2018 viene colaborando con Geoinnova como docente en diversos cursos y en el desarrollo de algunas herramemientas. Ya en 2022 se incorpora al equipo Geoinnova como técnico y desarrollador GIS.

Interacciones con los lectores

¿Quieres comentarnos algo? Adelante! Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Geoinnova
c/ Luis Morondo Urra nº 8 Bajo A
31006 Pamplona (Navarra)
info@geoinnova.org
+34 948 117 137

Horario de atención

Lunes a Viernes - 09:00 a 14:00 y de 16:00 a 19:00.
Fines de semana y Festivos - Exclusivamente por mail.
Horario de Verano (01 de julio al 30 de agosto): De lunes a viernes de 8 a 15h.

Otras páginas de interes

  • Promociones y descuentos en formación
  • Formación bonificada FUNDAE
  • Verificador y descarga de Certificados de aprovechamiento
  • Cursos certificable por QGIS.org

Legal

  • Aviso Legal
  • Política de privacidad
  • Política de seguridad
  • Política de cookies
  • Términos y condiciones
Entidad adherida a Confianza Online Certificado de inscripción en el Registro de huella de carbono, compensación y proyectos de absorción Logo Plazox Certificado de conformidad con el ENS

Todo el contenido publicado desde 2009 hasta 2026 en el Blog de Geoinnova por Geoinnova y colaboradores está licenciado bajo CC BY-NC-ND 4.0
Para usos específicos, contactar con Geoinnova.

© 2026 · Desarrollada por Geoinnova

Gestionar el Consentimiento de las Cookies
Utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. Lo hacemos para mejorar la experiencia de navegación y para mostrar anuncios personalizados. El consentimiento a estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.
  • Administrar opciones
  • Gestionar los servicios
  • Gestionar {vendor_count} proveedores
  • Leer más sobre estos propósitos
Personalizar
  • {title}
  • {title}
  • {title}