Skip to content

Coropletas

gdtel-cnig-develop edited this page Jun 21, 2023 · 6 revisions

Un mapa de coropletas es un mapa en el que las regiones toman un estilo (color) en base al valor, dentro de una escala de rangos, del dato contenido en uno de sus atributos.

coropleta

Por tanto, para construir dicho mapa, es necesario especificar al menos los siguientes parámetros:

  • Atributo que contiene el dato
  • Rangos definidos
  • Estilo para cada uno de los rangos

Puesto que definir cada uno de los rangos, y establecer un estilo para cada uno de ellos es una tarea pesada, se facilita dicha labor pudiendo establecer un número de rangos y un algoritmo/función para calcular sus límites, así como estilos por defecto o simplemente establecer color inicial y color final.

El uso más común sería:

let choropleth = new M.style.Choropleth(valueField, 
                                        [firstColor, lastColor], 
                                        quantification); 

Dónde:

Parámetro Descripción
valueField {string} - atributo que contiene el dato
firstColor {string} - color del rango inferior (opcional)
lastColor {string} - color del rango superior (opcional)
quantification {M.style.quantification | function()} - algoritmo de cuantificación y número de rangos. Puede ser una función personalizada o utilizar las ya definidas M.style.quantification.JENKS(rangos), M.style.quantification.QUANTILE(rangos), M.style.quantification.EQUAL_INTERVAL(rangos), M.style.quantification.MEDIA_SIGMA(rangos),M.style.quantification.ARITHMETIC_PROGRESSION(rangos), M.style.quantification.GEOMETRIC_PROGRESSION(rangos) (opcional)

💡 Como se puede observar, el firstColor y lastColor van dentro de un array. Esto es para permitir poder definir tantos estilos (M.style) como rangos se quieran en lugar de pasar únicamente los colores extremos, ignorando en este caso los rangos pasados al algoritmo de cuantificación.

Un ejemplo completo de un mapa de coropletas, sería tan sencillo como:

//creación del mapa
let mapajs = M.map({
  'container': 'map'
});

// creación de la capa
let lyProv = new M.layer.WFS({
  name: "Provincias",
  url: "http://geostematicos-sigc.juntadeandalucia.es/geoserver/tematicos/wfs?",
  name: "Provincias",
  legend: "Provincias - COROPLETAS",
  geometry: 'POLYGON',
});

// se crea el estilo y se aplica a la capa
let choropleth = new M.style.Choropleth(
                     'u_cod_prov', 
                     ['#000000', '#008000', '#FFFFFF'], 
                     M.style.quantification.JENKS(4));
lyProv.setStyle(choropleth);

//se añade la capa al mapa
mapajs.addLayers(lyProv);
  • API-CNIG permite simplificar aún más la generación del coropleta, obviando los parámetros opcionales. De esta forma, se establecerá un escala de 5 rangos, de rojo claro a rojo oscuro, calculados mediante JENKS:
let choropleth = new M.style.Choropleth(valueField); 
  • En caso de que queramos pasar directamente los rangos de clasificación, la función que tenemos que definir es tan simple como la siguiente:
var rangos_usuario = [10, 20, 30, 40, 50];
let choropleth = new M.style.Choropleth("u_cod_prov", ["red", "blue"], () => rangos_usuario);
layer.setStyle(choropleth);

1.INICIO
   1.1. Componentes de la API-CNIG
   1.2. Documentación y Puntos de acceso
   1.3. Primeros pasos
   1.4. Diagrama API CNIG

2. MAPA
2.1. Capas

 ■ 2.1.1. Fuentes
   • 2.1.1.1. Capas vectoriales
     + Vector
     + WFS
     + GeoJSON
     + KML
     + MVT
     + OGCAPIFeatures
     + MBTilesVector
     + GenericVector
   • 2.1.1.2. Capas ráster
     + WMS
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
   • 2.1.1.3. Capas rápidas

 ■ 2.1.2. Simbolización
   • 2.1.2.1. Genérica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.2. Básica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.3. Avanzada
     + Coropletas
     + Proporcional
     + Categorías
     + Estadísticos
     + Mapas de Calor
     + Cluster
     + Línea de flujo
     + Composición

 ■ 2.1.3. Filtros

    2.3. Plugins

2.4. Paneles

  ■ Creación de panel desde cero sin controles

  ■ Tutorial Panel de un único control

  ■ Tutorial Panel de un único control con más de un botón

  ■ Tutorial Panel con más de un control

2.5. Eventos

  ■ Gestión de eventos
  ■ Gestión de eventos en controles personalizados

    2.6. Internacionalización

    2.7. Configuración

    2.8. Acceso librerías base

3. UTILIDADES

4. PROXY

5. API REST
 5.1. Parametrización API-REST
 5.2. Base de Datos API-REST
 5.3. API REST Actions
 5.4. Servicio de correos electrónicos
 5.5. Capas rápidas

6. PARAMETRIZACIÓN VISUALIZADORES

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía de desarrollo de plugins
  > Guía de desarrollo de visualizadores con React
  > Guía de desarrollo de componentes
  > Guía para el desarrollo de API-CNIG
  > Compilación proyecto API-CNIG

Clone this wiki locally