From 6de9ded0cc5293a27b4d1e35a8cb89c0acb052a0 Mon Sep 17 00:00:00 2001 From: Anton Roslund Date: Mon, 14 Apr 2025 23:39:33 +0200 Subject: [PATCH] make position-precision use fetchNodes() --- static/js/status/position-precision-chart.js | 27 +++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/static/js/status/position-precision-chart.js b/static/js/status/position-precision-chart.js index fc03225..c969c3e 100644 --- a/static/js/status/position-precision-chart.js +++ b/static/js/status/position-precision-chart.js @@ -89,14 +89,29 @@ async function positionPrecisionGraph() { try { - const response = await fetch('https://map.sthlm-mesh.se/api/v1/stats/position-precision') - const data = await response.json(); + await fetchNodes(); + const countsByPrecision = {}; - const sorted = data.sort((a, b) => b.position_precision - a.position_precision); - - const labels = sorted.map(entry => formatPositionPrecision(entry.position_precision)); + // Filter out nodes without position_precision + const nodesWithPoistion = nodes.filter(node => node.position_precision != null); + + // Count how many nodes fall into each precision value + for (const node of nodesWithPoistion) { + const precision = node.position_precision + countsByPrecision[precision] = (countsByPrecision[precision] || 0) + 1; + } + + // Convert to array of { precision, count } + const statsArray = Object.entries(countsByPrecision).map(([precision, count]) => ({ + precision: parseInt(precision, 10), + count + })); + + // Sort by precision descending + const sorted = statsArray.sort((a, b) => b.precision - a.precision); + const labels = sorted.map(entry => formatPositionPrecision(entry.precision)); const counts = sorted.map(entry => entry.count); - const backgroundColors = sorted.map(entry => getPositionColor(entry.position_precision)); + const backgroundColors = sorted.map(entry => getPositionColor(entry.precision)); const chartContainer = document.getElementById('positionPrecisionContainer'); chartContainer.style.height = `${labels.length *35}px`;