Provides the boundaries of the provinces, cantons and parishes of Ecuador as 'sf' objects, identified by the codes of the national political-administrative division (DPA, "División Político-Administrativa"), ready to be mapped and joined with health, epidemiological surveillance or other data. The three levels nest exactly and are offered in two resolutions: a light one for maps and dashboards and a detailed one for spatial analysis. The layers are derived from the open data of the Territorial Organization of the State published by the National Committee of Internal Boundaries (CONALI, Ministry of Government of Ecuador) under a CC BY licence < https://www.datosabiertos.gob.ec/>, and are downloaded on first use as 'GeoPackage' files, verified and cached locally. Includes a catalogue of DPA codes, a table to update codes from earlier versions, helpers to clean codes and place names, and tools to relocate the Galapagos Islands in national maps. Documentation is in Spanish.

geoecu da acceso en una línea de código a las capas de provincias, cantones y parroquias del Ecuador, con los códigos de la División Político-Administrativa (DPA), listas para mapear y para unir con datos de salud, vigilancia epidemiológica o cualquier otra fuente. Las capas provienen de los datos abiertos de la Organización Territorial del Estado publicados por el CONALI (Ministerio de Gobierno).
Nota: geoecu es un paquete independiente, desarrollado a título personal. No es un producto oficial de ninguna institución, ni del CONALI ni del Ministerio de Gobierno.
Ejecuta este bloque en la consola de R o RStudio, no en la terminal de Ubuntu. Los paquetes de visualización son opcionales para leer capas, pero necesarios para reproducir las figuras de esta página.
install.packages(c("geoecu", "ggplot2", "patchwork", "scales"))
library(geoecu)
library(ggplot2)
Versión en desarrollo (GitHub):
install.packages("remotes")
remotes::install_github("f-slg/geoecu")
En la primera lectura, las geometrías se descargan desde el release de datos, se verifican y se conservan en caché para futuras sesiones.
geoecu utiliza sf. Para evitar compilar bibliotecas geoespaciales en Ubuntu, puedes instalar el binario desde la terminal de Ubuntu antes de la instalación de R:
sudo apt update
sudo apt install r-cran-sf
Si compilas sf desde R, las dependencias del sistema incluyen libgdal-dev, libgeos-dev, libproj-dev, libudunits2-dev y libssl-dev.
Tras instalar el paquete, ejecuta este ejemplo mínimo:
library(geoecu)
library(ggplot2)
provincias <- read_provincias()
ggplot(provincias) +
geom_sf(fill = "#DCEAF2", color = "#0F2233", linewidth = 0.25) +
labs(title = "Provincias del Ecuador") +
theme_void()
Este es un mapa introductorio, no la composición temática de la galería. Los ejemplos siguientes reproducen las imágenes detalladas con sus mismas capas y estilos.
"baja" (3 MB, para mapas, boletines y tableros Shiny) y
"alta" (39 MB, para análisis espacial).actualizar_codigo().📖 Documentación: Guía de uso · Galería completa · Fuente de datos · Funciones
library(geoecu)
read_cantones(provincia = "Loja")
read_parroquias(canton = "Puyango", tipo = "rural")
read_parroquias(provincia = "Loja", resolucion = "alta")
# Sistema proyectado para análisis espacial de Loja
read_cantones(provincia = "Loja", crs = 32717)
Cada capa es un objeto sf con códigos DPA y el área area_km2:
| Capa | Principales columnas |
|---|---|
read_provincias() |
dpa_provin, provincia, tipo, area_km2 |
read_cantones() |
dpa_canton, canton, dpa_provin, provincia, area_km2 |
read_parroquias() |
dpa_parroq, parroquia, tipo, dpa_canton, canton, area_km2 |
La columna area_km2 es la superficie en km², calculada sobre el elipsoide
WGS84 con la resolución alta.
Este ejemplo usa datos ficticios identificados como demostración, sin requerir un CSV que no exista en el repositorio. Sustituye datos_demo por tu tabla real antes de interpretar los resultados.
library(geoecu)
library(ggplot2)
# Datos ficticios solo para probar la unión (NO casos reales)
datos_demo <- data.frame(
cod_canton = c("1101", "1102", "1110"),
eventos_demo = c(12, 4, 7)
)
mapa_demo <- geoecu_unir(
datos_demo, codigo = "cod_canton", nivel = "canton",
provincia = "Loja"
)
ggplot(mapa_demo) +
geom_sf(aes(fill = eventos_demo), color = "white", linewidth = 0.2) +
scale_fill_gradient(low = "#DCEAF2", high = "#12618A",
na.value = "grey90", name = "Ejemplo") +
labs(title = "Demostración de unión DPA: Loja",
subtitle = "Datos ficticios; no representan eventos observados") +
theme_void()
Los cantones sin datos quedan con NA. Antes de generar mapas epidemiológicos, agrega los eventos al mismo nivel territorial y verifica la correspondencia de códigos.
head(dpa)
buscar_dpa("arenal")
buscar_dpa("puyango", nivel = "canton")
formatear_codigo(c(701, 1101), "canton")
normalizar_nombre("Cañar ")
En la versión 0.4.0 las parroquias urbanas forman parte de su cabecera cantonal. Para actualizar códigos de versiones anteriores y revisar las equivalencias:
actualizar_codigo(c("010101", "080253"))
subset(dpa_equivalencias, cambio == "código distinto")
# Ver dónde se guardan las capas ya descargadas
geoecu_cache_dir()
geoecu_datos_disponibles()
# Si tienes GeoPackages propios, indica una carpeta que exista:
# geoecu_usar_carpeta("~/datos/geoecu")
Las seis imágenes siguientes se generan con los datos abiertos de CONALI disponibles en geoecu; la sexta añade la población del INEC mediante el paquete hermano pobecu. Cada bloque de R es autónomo: cópialo en RStudio para obtener la misma composición, paleta, capas, etiquetas y leyenda de la figura. El tamaño del panel Plots puede cambiar la distribución visual; cada ejemplo incluye la instrucción opcional de exportación con las dimensiones de la imagen publicada.
| Nivel | Función principal | Cobertura |
|---|---|---|
| Provincias | read_provincias() |
24 provincias + 1 zona en estudio |
| Cantones | read_cantones() |
223 cantones + 2 zonas en estudio |
| Parroquias | read_parroquias() |
1048 parroquias + 3 zonas en estudio |
Muestra 24 provincias y una zona en estudio. Los colores reflejan regiones naturales y los nombres provinciales aparecen sobre el continente.
library(geoecu)
library(ggplot2)
azul <- "#0F2233"
dorado <- "#F2B705"
tema <- theme_void(base_size = 12) +
theme(plot.title = element_text(face = "bold", size = 13, color = azul,
hjust = 0.5, margin = margin(t = 3, b = 7, l = 4, r = 4)),
plot.subtitle = element_text(size = 9.5, color = "grey40",
hjust = 0.5, margin = margin(b = 5, l = 4, r = 4)),
legend.position = "bottom",
legend.title = element_text(size = 9, color = "grey30"),
legend.text = element_text(size = 8.5, color = "grey30"),
plot.title.position = "plot",
plot.margin = margin(t = 18, r = 20, b = 18, l = 22, unit = "pt"),
plot.background = element_rect(fill = "white", color = NA))
marco <- function(capa) {
geom_sf(data = marco_galapagos(capa), fill = NA, color = "grey78",
linewidth = 0.3)
}
region <- data.frame(
dpa_provin = sprintf("%02d", 1:24),
region = c("Sierra", "Sierra", "Sierra", "Sierra", "Sierra", "Sierra",
"Costa", "Costa", "Costa", "Sierra", "Sierra", "Costa",
"Costa", "Amazonía", "Amazonía", "Amazonía", "Sierra",
"Sierra", "Amazonía", "Insular", "Amazonía", "Amazonía",
"Costa", "Costa")
)
region <- rbind(region, data.frame(dpa_provin = "90", region = "Zona en estudio"))
region$region <- factor(region$region,
levels = c("Costa", "Sierra", "Amazonía", "Insular",
"Zona en estudio"))
prov <- reubicar_galapagos(read_provincias(crs = 32717))
p_prov <- merge(prov, region, by = "dpa_provin")
prov_etiquetas <- prov[prov$tipo == "provincia" & prov$dpa_provin != "20", ]
p_provincias <- ggplot() +
geom_sf(data = p_prov, aes(fill = region), color = "white", linewidth = 0.4) +
geom_sf_text(data = prov_etiquetas, aes(label = provincia),
color = azul, size = 2.1, fontface = "bold",
check_overlap = TRUE) +
marco(prov) +
scale_fill_manual(values = c(Costa = "#E9A23B", Sierra = "#7B9E5A",
"Amazonía" = "#2E6E5C", Insular = "#4C8DB5",
"Zona en estudio" = "grey80"),
name = "Región natural", drop = FALSE,
guide = guide_legend(nrow = 1)) +
labs(title = "Ecuador | Provincias",
subtitle = "24 provincias y una zona en estudio · División Político-Administrativa",
caption = "Galápagos reubicado únicamente para visualización") +
tema +
theme(legend.position = "bottom",
plot.title = element_text(hjust = 0, face = "bold", size = 17),
plot.subtitle = element_text(hjust = 0, size = 10),
plot.caption = element_text(size = 8, color = "grey45"))
print(p_provincias)
# Exportación idéntica: 10.5 x 8 pulgadas y 200 dpi
# ggsave("mapa_provincias.png", p_provincias, width = 10.5, height = 8, dpi = 200)
Mapa temático de 223 cantones y dos zonas en estudio, con un indicador verificable obtenido directamente del catálogo dpa. La escala de colores es logarítmica.
library(geoecu)
library(ggplot2)
azul <- "#0F2233"
dorado <- "#F2B705"
tema <- theme_void(base_size = 12) +
theme(plot.title = element_text(face = "bold", size = 13, color = azul,
hjust = 0.5, margin = margin(t = 3, b = 7, l = 4, r = 4)),
plot.subtitle = element_text(size = 9.5, color = "grey40",
hjust = 0.5, margin = margin(b = 5, l = 4, r = 4)),
legend.position = "bottom",
legend.title = element_text(size = 9, color = "grey30"),
legend.text = element_text(size = 8.5, color = "grey30"),
plot.title.position = "plot",
plot.margin = margin(t = 18, r = 20, b = 18, l = 22, unit = "pt"),
plot.background = element_rect(fill = "white", color = NA))
marco <- function(capa) {
geom_sf(data = marco_galapagos(capa), fill = NA, color = "grey78",
linewidth = 0.3)
}
prov <- reubicar_galapagos(read_provincias(crs = 32717))
cant <- reubicar_galapagos(read_cantones(crs = 32717))
n_parr <- as.data.frame(table(dpa_canton = dpa$dpa_canton), stringsAsFactors = FALSE)
names(n_parr)[2] <- "parroquias"
c_parr <- merge(cant, n_parr, by = "dpa_canton")
p_cantones <- ggplot() +
geom_sf(data = c_parr, aes(fill = parroquias),
color = "white", linewidth = 0.08) +
geom_sf(data = prov, fill = NA, color = azul, linewidth = 0.42) +
marco(prov) +
scale_fill_gradientn(
colours = c("#FFF4D2", "#F2C14E", "#D9822B", "#8C3B12"),
trans = "log10", breaks = c(1, 2, 5, 10, 25, 50),
name = "Parroquias por cantón", na.value = "grey85"
) +
labs(title = "Ecuador | Cantones",
subtitle = "223 cantones y dos zonas en estudio · número de parroquias",
caption = "Escala logarítmica · límites provinciales resaltados") +
tema +
theme(legend.position = "right",
plot.title = element_text(hjust = 0, face = "bold", size = 17),
plot.subtitle = element_text(hjust = 0, size = 10),
plot.caption = element_text(size = 8, color = "grey45"))
print(p_cantones)
# ggsave("mapa_cantones.png", p_cantones, width = 10.5, height = 8, dpi = 200)
Combina dos vistas: clasificación de 1048 parroquias y tres zonas en estudio, y detalle de Puyango (Loja) con sus nombres parroquiales en resolución alta.
library(geoecu)
library(ggplot2)
library(patchwork)
azul <- "#0F2233"
dorado <- "#F2B705"
tema <- theme_void(base_size = 12) +
theme(plot.title = element_text(face = "bold", size = 13, color = azul,
hjust = 0.5, margin = margin(t = 3, b = 7, l = 4, r = 4)),
plot.subtitle = element_text(size = 9.5, color = "grey40",
hjust = 0.5, margin = margin(b = 5, l = 4, r = 4)),
legend.position = "bottom",
legend.title = element_text(size = 9, color = "grey30"),
legend.text = element_text(size = 8.5, color = "grey30"),
plot.title.position = "plot",
plot.margin = margin(t = 18, r = 20, b = 18, l = 22, unit = "pt"),
plot.background = element_rect(fill = "white", color = NA))
marco <- function(capa) {
geom_sf(data = marco_galapagos(capa), fill = NA, color = "grey78",
linewidth = 0.3)
}
prov <- reubicar_galapagos(read_provincias(crs = 32717))
parr <- reubicar_galapagos(read_parroquias(crs = 32717))
p_parroquias <- ggplot() +
geom_sf(data = parr, aes(fill = tipo), color = "white", linewidth = 0.04) +
geom_sf(data = prov, fill = NA, color = azul, linewidth = 0.3) +
marco(prov) +
scale_fill_manual(values = c("cabecera cantonal" = "#C2410C",
"parroquia rural" = "#F6E7C8",
"zona en estudio" = "grey80"),
name = "Tipo de unidad") +
labs(title = "Ecuador | Parroquias",
subtitle = "1048 parroquias y tres zonas en estudio") +
tema +
theme(plot.title = element_text(hjust = 0, face = "bold", size = 14),
plot.subtitle = element_text(hjust = 0, size = 9))
puyango <- read_parroquias(provincia = "Loja", canton = "Puyango",
resolucion = "alta", crs = 32717)
p_detalle <- ggplot(puyango) +
geom_sf(aes(fill = tipo), color = azul, linewidth = 0.55) +
geom_sf_text(aes(label = parroquia), color = azul,
size = 2.6, fontface = "bold", check_overlap = TRUE) +
scale_fill_manual(values = c("cabecera cantonal" = "#C2410C",
"parroquia rural" = "#F6E7C8"),
name = "Tipo de unidad") +
labs(title = "Detalle | Puyango (Loja)",
subtitle = "Límites y nombres parroquiales · alta resolución") +
tema +
theme(plot.title = element_text(hjust = 0, face = "bold", size = 14),
plot.subtitle = element_text(hjust = 0, size = 9))
panel_parroquial <- (p_parroquias | p_detalle) +
plot_layout(widths = c(1.55, 1), guides = "collect") &
theme(legend.position = "bottom")
print(panel_parroquial)
# ggsave("mapa_parroquias.png", panel_parroquial, width = 15, height = 7.6, dpi = 200)
El recuadro muestra Galápagos reubicado, superpuesto a un mapa de cantones coloreados por número de parroquias. Es una composición solo para visualización, no para cálculos de área o distancias.
library(geoecu)
library(ggplot2)
azul <- "#0F2233"
dorado <- "#F2B705"
tema <- theme_void(base_size = 12) +
theme(plot.title = element_text(face = "bold", size = 13, color = azul,
hjust = 0.5, margin = margin(t = 3, b = 7, l = 4, r = 4)),
plot.subtitle = element_text(size = 9.5, color = "grey40",
hjust = 0.5, margin = margin(b = 5, l = 4, r = 4)),
legend.position = "bottom",
legend.title = element_text(size = 9, color = "grey30"),
legend.text = element_text(size = 8.5, color = "grey30"),
plot.title.position = "plot",
plot.margin = margin(t = 18, r = 20, b = 18, l = 22, unit = "pt"),
plot.background = element_rect(fill = "white", color = NA))
marco <- function(capa) {
geom_sf(data = marco_galapagos(capa), fill = NA, color = "grey78",
linewidth = 0.3)
}
n_parr <- as.data.frame(table(dpa_canton = dpa$dpa_canton), stringsAsFactors = FALSE)
names(n_parr)[2] <- "parroquias"
mapa <- geoecu_unir(n_parr, "dpa_canton", "canton", crs = 32717) |>
reubicar_galapagos()
prov <- reubicar_galapagos(read_provincias(crs = 32717))
g_nac <- ggplot() +
geom_sf(data = mapa, aes(fill = parroquias), color = "white", linewidth = 0.12) +
geom_sf(data = prov, fill = NA, color = azul, linewidth = 0.3) +
marco(prov) +
scale_fill_gradientn(colours = c("#FFF4D2", "#F2C14E", "#D9822B", "#8C3B12"),
trans = "log10", breaks = c(2, 5, 10, 25, 60),
name = "Parroquias") +
labs(title = "Número de parroquias por cantón",
subtitle = "geoecu_unir() + reubicar_galapagos()") +
tema + theme(legend.position = "right",
plot.title = element_text(hjust = 0),
plot.subtitle = element_text(hjust = 0, family = "mono"))
print(g_nac)
# ggsave("mapa_nacional.png", g_nac, width = 9.5, height = 7.5, dpi = 200)
Ejemplo de detalle con los 16 cantones y 94 parroquias de Loja, límites cantonales resaltados y nombres de cantón. Se utilizan las capas de alta resolución.
library(geoecu)
library(ggplot2)
azul <- "#0F2233"
dorado <- "#F2B705"
tema <- theme_void(base_size = 12) +
theme(plot.title = element_text(face = "bold", size = 13, color = azul,
hjust = 0.5, margin = margin(t = 3, b = 7, l = 4, r = 4)),
plot.subtitle = element_text(size = 9.5, color = "grey40",
hjust = 0.5, margin = margin(b = 5, l = 4, r = 4)),
legend.position = "bottom",
legend.title = element_text(size = 9, color = "grey30"),
legend.text = element_text(size = 8.5, color = "grey30"),
plot.title.position = "plot",
plot.margin = margin(t = 18, r = 20, b = 18, l = 22, unit = "pt"),
plot.background = element_rect(fill = "white", color = NA))
marco <- function(capa) {
geom_sf(data = marco_galapagos(capa), fill = NA, color = "grey78",
linewidth = 0.3)
}
loja_p <- read_parroquias(provincia = "Loja", resolucion = "alta", crs = 32717)
loja_c <- read_cantones(provincia = "Loja", resolucion = "alta", crs = 32717)
loja_p$canton <- factor(loja_p$canton)
g_loja <- ggplot() +
geom_sf(data = loja_p, aes(fill = canton), color = "white", linewidth = 0.2) +
geom_sf(data = loja_c, fill = NA, color = azul, linewidth = 0.5) +
geom_sf_label(data = loja_c, aes(label = canton), size = 2.3, color = azul,
fontface = "bold", fill = scales::alpha("white", 0.8),
linewidth = 0, label.padding = unit(0.12, "lines")) +
scale_fill_manual(values = grDevices::hcl.colors(16, "Set 3"), guide = "none") +
labs(title = sprintf("Provincia de Loja: %d cantones y %d parroquias",
nrow(loja_c), nrow(loja_p)),
subtitle = "read_parroquias(provincia = \"Loja\", resolucion = \"alta\")") +
tema + theme(plot.title = element_text(hjust = 0),
plot.subtitle = element_text(hjust = 0, family = "mono"),
plot.margin = margin(t = 18, r = 20, b = 18, l = 22, unit = "pt"))
print(g_loja)
# ggsave("mapa_loja.png", g_loja, width = 8, height = 8, dpi = 200)
Combina area_km2 de geoecu con la población 2026 del INEC, disponible en el paquete hermano pobecu, para obtener habitantes por km² en los tres niveles con una escala logarítmica común. La población usa las divisiones del Censo 2022, así que las unidades creadas después se suman a aquella de la que se separaron: los cantones Borbón y Sevilla Don Bosco, y las parroquias Sosote, Shuar Pastaza, Juan Montalvo, La Magdalena, La Primavera y Miss Ecuador. Las cifras parroquiales son una estimación de pobecu, no oficial.
# install.packages("remotes"); remotes::install_github("f-slg/pobecu")
library(geoecu)
library(ggplot2)
library(patchwork)
azul <- "#0F2233"
dorado <- "#F2B705"
tema <- theme_void(base_size = 12) +
theme(plot.title = element_text(face = "bold", size = 13, color = azul,
hjust = 0.5, margin = margin(t = 3, b = 7, l = 4, r = 4)),
plot.subtitle = element_text(size = 9.5, color = "grey40",
hjust = 0.5, margin = margin(b = 5, l = 4, r = 4)),
legend.position = "bottom",
legend.title = element_text(size = 9, color = "grey30"),
legend.text = element_text(size = 8.5, color = "grey30"),
plot.title.position = "plot",
plot.margin = margin(t = 18, r = 20, b = 18, l = 22, unit = "pt"),
plot.background = element_rect(fill = "white", color = NA))
marco <- function(capa) {
geom_sf(data = marco_galapagos(capa), fill = NA, color = "grey78",
linewidth = 0.3)
}
anio <- 2026
prov <- reubicar_galapagos(read_provincias(crs = 32717))
cant <- reubicar_galapagos(read_cantones(crs = 32717))
parr <- reubicar_galapagos(read_parroquias(crs = 32717))
# Habitantes por km². `grupo` es el código de la unidad en la población del
# INEC (pobecu): las unidades creadas después se suman a la de origen.
densidad <- function(capa, grupo, pob) {
area <- tapply(capa$area_km2, grupo, sum)
hab <- pob$poblacion[match(names(area), pob$codigo)]
unname((hab / area)[grupo])
}
pob_prov <- pobecu::poblacion(nivel = "provincia", anio = anio)
pob_prov$codigo <- pob_prov$dpa_provin
prov$densidad <- densidad(prov, prov$dpa_provin, pob_prov)
# Borbón (0809) y Sevilla Don Bosco (1413) se separaron de Eloy Alfaro y Morona
pob_cant <- pobecu::poblacion(nivel = "canton", anio = anio)
pob_cant$codigo <- pob_cant$dpa_canton
grupo_cant <- c("0809" = "0802", "1413" = "1401")
cant$densidad <- densidad(
cant, ifelse(cant$dpa_canton %in% names(grupo_cant),
grupo_cant[cant$dpa_canton], cant$dpa_canton), pob_cant)
# Parroquias (estimación de pobecu, no oficial): los códigos del Censo 2022
# que cambiaron se actualizan, y las parroquias creadas después se suman a
# la parroquia de la que se separaron.
pob_parr <- pobecu::poblacion(nivel = "parroquia", anio = anio)
pob_parr$codigo <- ifelse(pob_parr$dpa_parroq %in% parr$dpa_parroq,
pob_parr$dpa_parroq,
actualizar_codigo(pob_parr$dpa_parroq))
grupo_parr <- c("131251" = "131250", # Sosote -> Rocafuerte
"160167" = "160162", # Shuar Pastaza -> Simón Bolívar
"170257" = "170250", # Juan Montalvo -> Cayambe
"210456" = "210450", # La Magdalena -> Shushufindi
"210457" = "210450", # La Primavera -> Shushufindi
"210458" = "210450") # Miss Ecuador -> Shushufindi
parr$densidad <- densidad(
parr, ifelse(parr$dpa_parroq %in% names(grupo_parr),
grupo_parr[parr$dpa_parroq], parr$dpa_parroq), pob_parr)
# Una sola escala para comparar los tres niveles
limites <- range(c(prov$densidad, cant$densidad, parr$densidad), na.rm = TRUE)
escala <- scale_fill_gradientn(
colours = c("#FFF4D2", "#F2C14E", "#D9822B", "#8C3B12"),
trans = "log10", limits = limites,
breaks = c(0.1, 1, 10, 100, 1000),
labels = c("0,1", "1", "10", "100", "1.000"),
name = "Habitantes por km²", na.value = "grey85"
)
mapa_densidad <- function(capa, titulo, borde) {
ggplot() +
geom_sf(data = capa, aes(fill = densidad), color = "white",
linewidth = borde) +
geom_sf(data = prov, fill = NA, color = azul, linewidth = 0.3) +
marco(prov) +
escala +
labs(title = titulo) +
tema +
theme(plot.margin = margin(t = 6, r = 6, b = 6, l = 6, unit = "pt"))
}
panel_densidad <- (mapa_densidad(prov, "Provincias", 0.15) |
mapa_densidad(cant, "Cantones", 0.08) |
mapa_densidad(parr, "Parroquias", 0.03)) +
plot_layout(guides = "collect") +
plot_annotation(
title = "Ecuador | Densidad poblacional",
subtitle = sprintf("Población %d (INEC, vía pobecu) / area_km2 de geoecu", anio),
caption = paste("Escala logarítmica común · parroquias: estimación de pobecu, no oficial",
"· gris: zonas en estudio, sin población asignada"),
theme = theme(plot.title = element_text(face = "bold", size = 17, color = azul),
plot.subtitle = element_text(size = 10, color = "grey40"),
plot.caption = element_text(size = 8, color = "grey45"),
plot.margin = margin(t = 18, r = 20, b = 12, l = 22, unit = "pt"),
plot.background = element_rect(fill = "white", color = NA))
) &
theme(legend.position = "bottom",
legend.title.position = "top", legend.title = element_text(hjust = 0.5),
legend.key.width = unit(2.2, "cm"), legend.key.height = unit(0.3, "cm"))
print(panel_densidad)
# ggsave("mapa_densidad.png", panel_densidad, width = 15, height = 6.2, dpi = 200)
Nota:
reubicar_galapagos()altera las coordenadas únicamente para mapas con recuadro. Para mediciones espaciales utiliza las capas originales sin reubicar.
Consulta la guía de uso · Galería web · Generador original de figuras
| Fuente | Organización Territorial del Estado, Comité Nacional de Límites Internos (CONALI), Ministerio de Gobierno del Ecuador. Versión del 17 de julio de 2026. Datos abiertos, licencia CC BY. |
| Figuras | Las imágenes de este README se generan con data-raw/03_figuras_readme.R a partir de los datos del paquete. |
| Procesamiento | Cantones y provincias construidos disolviendo las parroquias por código DPA; se excluye un polígono sin código ("ISLA"); simplificación topológica con mapshaper (10 m en alta, 250 m en baja); reproyección a WGS84. Scripts en data-raw/. |
| Cobertura | 24 provincias, 223 cantones y 1048 parroquias (223 cabeceras cantonales y 825 rurales), más 3 zonas en estudio. |
| Sistema de coordenadas | WGS84 (EPSG:4326) por defecto. |
Las parroquias urbanas forman parte de su cabecera cantonal. Las circunscripciones creadas después de la versión de origen no aparecen hasta la siguiente actualización de datos.
citation("geoecu")
Al usar los datos, cita también la fuente, como pide el CONALI:
Comité Nacional de Límites Internos (CONALI), Ministerio de Gobierno del
Ecuador. Límites territoriales de la Organización Territorial del Estado
interparroquiales, aprobados por el Directorio del CONALI en sesión ordinaria
del 24 de marzo de 2022, 17 de enero de 2023 y 13 de marzo de 2026. Datos
abiertos, licencia CC BY.
Las preguntas de uso van en Discussions, y los errores y propuestas en issues. Consulta la guía de contribución. Este proyecto sigue un código de conducta: al participar, te comprometes a respetarlo.
El código se distribuye bajo licencia MIT.
Los datos son del CONALI, con licencia CC BY; ver
inst/COPYRIGHTS.