Coropletas - IGN-CNIG/API-CNIG GitHub Wiki
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.
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 (tiene que ser un valor numérico) |
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);
vendorOptions
No permite vendorOptions
Ejemplos: