diff --git a/assets/script.js b/assets/script.js index 3cac39b..e6708f3 100644 --- a/assets/script.js +++ b/assets/script.js @@ -156,12 +156,19 @@ function init_draw_pinned_chart(num, data, cfg) { }); } -function change_map_info(id, edo) { - let name = document.getElementById(`${id}-name`); - name.innerHTML = `

${NOMBRES[edo - 1]}

` +function change_map_info(id, edo, valores) { + let name = document.getElementById(`${id}-name`); + let value = document.getElementById(`${id}-value`); + if (!(edo === undefined)) { + name.innerHTML = `

${NOMBRES[edo - 1]}

` + value.innerHTML = `

Incidentes: ${new Intl.NumberFormat('en-US', { maximumSignificantDigits: 3 }).format(valores.valores[edo - 1])}

` + } else { + name.innerHTML = `

Total

` + value.innerHTML = `

Incidentes: ${new Intl.NumberFormat('en-US', { maximumSignificantDigits: 3 }).format(valores.total)}

` + } } -function load_map_data(data, cfg, chart_cfg) { +function load_map_data(data, cfg, chart_cfg, valores) { let input_fini = document.getElementById(`afini-${cfg['num']}`); let input_init = document.getElementById(`ainit-${cfg['num']}`); @@ -188,7 +195,7 @@ function load_map_data(data, cfg, chart_cfg) { console.log('Fetching') console.log(JSON.stringify(data)) - update_map_data(cfg.num, { "total": 2000, "valores": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }); + update_map_data(cfg.num, { "total": 2000, "valores": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, valores); fetch(cfg.endpoint, { method: "POST", @@ -200,10 +207,11 @@ function load_map_data(data, cfg, chart_cfg) { ) .then((response) => response.json()) .then((json) => { - update_map_data(cfg.num, json); + update_map_data(cfg.num, json, valores); + change_map_info(cfg.num, undefined, valores); if (!(chart_cfg === undefined)) { - init_draw_pinned_chart(cfg.num, data, chart_cfg); - } + init_draw_pinned_chart(cfg.num, data, chart_cfg); + } }); } @@ -310,8 +318,10 @@ function calculateProbabilityLessThan(x, mean, stdDeviation) { return probability; } -function update_map_data(n, data) { +function update_map_data(n, data, valores) { console.log(`Updating ${n} with ${data.total}`) + valores['valores'] = data.valores; + valores['total'] = data.total; let vals = data.valores.map((v) => v / data.total); let r = calculateStandardDeviation(vals); diff --git a/src/bin/api.rs b/src/bin/api.rs index bd215cb..e5807de 100644 --- a/src/bin/api.rs +++ b/src/bin/api.rs @@ -149,7 +149,7 @@ async fn root() -> Hello<'static> { href: "#zonas-calientes", }, Section { - name: "Incidentes por mes", + name: "Mapas de calor por Mes y Año", href: "#incidentes-por-mes", }, ], @@ -477,7 +477,7 @@ async fn anio_porcentajes( .unwrap() }; - println!("Anio: {resultados:?}"); + // println!("Anio: {resultados:?}"); AnioPorcetajes { total: u64::try_from(total).unwrap(), @@ -549,8 +549,8 @@ async fn mes_porcentajes( assert!(res.len() >= 9); - println!("Meses en {}: {resultados:?}", anio + OFFSET); - println!("Meses en {}: {res:?}", anio + OFFSET); + // println!("Meses en {}: {resultados:?}", anio + OFFSET); + // println!("Meses en {}: {res:?}", anio + OFFSET); MesPorcetajesEnAnio { total: u64::try_from(total).unwrap(), diff --git a/templates/MXfmt.svg b/templates/MXfmt.svg index 4f0ae70..921fa23 100644 --- a/templates/MXfmt.svg +++ b/templates/MXfmt.svg @@ -71,99 +71,115 @@ id="g6224" transform="matrix(1.4273234,0,0,1.4273234,-23.376559,-335.18263)"> { - load_map_data(data, { num: 1, endpoint: '/map_percent' }, chart_cfg); + load_map_data(data, { num: 1, endpoint: '/map_percent' }, chart_cfg, valores); } ); $watch('map_loaded', value => { if (value === true) { - load_map_data(data, { num: 1, endpoint: '/map_percent' }, chart_cfg); + load_map_data(data, { num: 1, endpoint: '/map_percent'}, chart_cfg, valores); } }); " - x-data="{ chart_cfg: { colores_en_mapa: true, pinned: [ 11, 9, 7 ] }, map_loaded: false, data: { annio_inicio: 2023, annio_final: 2023, categorias: [ 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ] }, num: 1 }" + x-data="{ chart_cfg: { colores_en_mapa: true, pinned: [ 11, 9, 7 ] }, map_loaded: false, data: { annio_inicio: 2023, annio_final: 2023, categorias: [ 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ] }, num: 1, valores: { valores: [], total: 0 } }" id="zonas-calientes" class="flex flex-col p-3">

Zonas Calientes

@@ -140,7 +140,10 @@

Zonas Calientes

-

Iztapalapa

+
+

Iztapalapa

+

+
@@ -168,13 +171,11 @@

Zonas Calientes

id="incidentes-por-mes" class="flex flex-col p-3">
-

Incidentes por Mes

+

Mapas de calor por Mes y Año

Info -

Incidentes por mes para las alcaldias y categorías seleccionadas en - el - período de tiempo de 2023 hasta 2023 +

Mapa de calor de probabilidad acumulada de la distribución normal + sobre las categorías seleccionadas