[B] ODS Geo Display — ODSLocal Edition
PHP ≥ 8.1
WordPress ≥ 6.0
Requiere ODSLocal Municipios
1. Qué hace
[B] ODS Geo Display — ODSLocal Edition es la reescritura del plugin ods-geo sobre la arquitectura ODSLocal. Mantiene el mismo lenguaje visual pero consume directamente odslocal_measurements y odslocal_territories.
Renderiza mapas coropléticos, mapas de densidad y mapas de cumplimiento de los ODS a nivel municipal.
2. Instalación
- Requiere ODSLocal Municipios activo.
- El plugin ODSLocal Municipios ya debe tener el GeoJSON en
assets/geojson/municipios-es.geojson(reutiliza ese). - Sube
odslocal-geo-display/awp-content/plugins/. - Actívalo.
- Coloca el shortcode correspondiente en una página.
3. Shortcodes
Cada modo tiene dos tags equivalentes (uno con prefijo odslocal_ y otro sin, para compatibilidad con integraciones antiguas):
| Shortcode | Alias | Modo |
|---|---|---|
|
|
Mapa coroplético clásico de un indicador + año. |
|
, |
Mapa de densidad / resumen general. |
|
|
Mapa de cumplimiento de ODS (escala de logro). |
Atributos comunes
| Atributo | Descripción |
|---|---|
indicator |
Clave del indicador (ods_ods_3_1_1__...). |
year |
Año de las mediciones. Por defecto el año actual. |
height |
Altura CSS del mapa (por defecto 600px). |
center_lat, center_lng, zoom |
Centro y zoom inicial. |
scope |
ccaa / province / municipality. |
4. Ejemplos prácticos
<!-- Tasa de pobreza 2023 a nivel municipal -->
Cargando datos…
<!-- Resumen general ODS, mapa de densidad -->
Cargando datos…
<!-- Cumplimiento ODS3 -->
Cargando datos…
5. Modos de visualización
5.1 Mapa normal (coroplético)
- Selector de indicador (autocompletado por los 178 indicadores del catálogo).
- Selector de año.
- Gradiente de color configurable (5 tramos por defecto, Jenks natural breaks).
- Hover muestra tooltip con nombre, código INE y valor.
- Click abre popup con histórico últimos 5 años.
5.2 Mapa de densidad / resumen
Pinta cada municipio según cuántos ODS tienen datos recientes. Útil para detectar lagunas de cobertura en un vistazo.
5.3 Mapa de cumplimiento
Escala 0 – 100 de logro relativo respecto a las metas. Verde / amarillo / rojo. Permite seleccionar un ODS concreto o ver el agregado.
6. REST API
Se registran tres namespaces (dos son alias históricos):
odslocal-geo/v1(canónico)ods-geo/v1(alias)bqr-ods/v1(alias legacy b-qr-ods)
| Ruta | Qué devuelve |
|---|---|
GET /map/municipality/{code}/summary |
Ficha resumida de un municipio: coordenadas, valor actual por ODS. |
GET /map/municipality/{code}/history |
Serie histórica del municipio. |
GET /map/heatmap |
Dataset completo para pintar un heatmap (valores por municipio). |
Todos son públicos (__return_true) porque consumen datos ya aprobados.
7. Personalización de colores
Los mapas usan una paleta secuencial basada en los colores oficiales de cada ODS (verde ODS, azul ODS, etc.). Para sobrescribir, define tus colores en CSS antes del shortcode:
.bdw-geo-ramp { --color-0:#fee; --color-1:#fcc; --color-2:#f88; --color-3:#f44; --color-4:#d00; }
El JS del plugin reutiliza el array BDW_Display_REST::$goal_colors si está disponible (plugin b-ods-display instalado).
8. Integración con otros plugins
- ODSLocal Municipios (obligatorio) — lee
odslocal_measurementsyodslocal_territories. - b-ods-display (opcional) — comparte paleta de colores por ODS.
- ODSLocal Data Export (opcional) — el popup del municipio puede incluir botón «Descargar CSV» si el plugin de export está activo.
9. Traducciones
- Text domain:
odslocal-geo-display. languages/incluye POT base.- Para añadir un idioma: duplicar POT a
odslocal-geo-display-{locale}.po, traducir, compilar conwp i18n make-mo languages/.
10. Solución de problemas
El mapa sale en blanco
- ¿Existe
assets/geojson/municipios-es.geojsonen el plugin ODSLocal Municipios? - Revisa consola del navegador: errores 404 indican que falta el GeoJSON.
No aparecen datos en varias zonas
Normal: sólo se pintan municipios con mediciones approved en ese indicador y año. Usa el mapa de densidad para ver cobertura global.
Los colores no coinciden con otros plugins
Si tienes b-ods-display activo, comparten paleta. Si no, este plugin usa la suya propia. Alinea con CSS.
Mi tema rompe el layout del mapa
Envuelve el shortcode en un contenedor con position: relative y altura definida. Problemas comunes vienen de themes que ponen overflow: hidden en el wrapper.