feat: vue dividende universel — overlay membres actifs géolocalisés
ci/woodpecker/push/woodpecker Pipeline was successful

Bouton DU (gauche carte) : affiche en overlay des cercles verts
proportionnels au nombre de membres WoT actifs géolocalisés par ville.
Chargement à la demande, mis en cache 1h.

Pipeline :
  SubsquidAdapter.fetchActiveMemberKeys() → isMember:true (~7000)
  CesiumAdapter.resolveGeoByKeysBatched() → lots de 500 clés
  DataService.fetchMemberCities()         → agrégation + cache 1h
  HeatMap → CircleMarkers Leaflet en overlay

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
syoul
2026-03-28 12:57:19 +01:00
parent 0136ff9ce1
commit 7c9d626b98
5 changed files with 168 additions and 6 deletions
+17
View File
@@ -163,6 +163,23 @@ export async function resolveGeoByKeys(
return result;
}
/**
* Même que resolveGeoByKeys mais traite les grands tableaux par lots.
* Nécessaire pour les 6000+ membres actifs (évite des requêtes ES trop grandes).
*/
export async function resolveGeoByKeysBatched(
duniterKeys: string[],
batchSize = 500,
): Promise<Map<string, GeoProfile>> {
const result = new Map<string, GeoProfile>();
for (let i = 0; i < duniterKeys.length; i += batchSize) {
const batch = duniterKeys.slice(i, i + batchSize);
const partial = await resolveGeoByKeys(batch);
for (const [k, v] of partial) result.set(k, v);
}
return result;
}
/**
* Résout les coordonnées de plusieurs membres Ğ1 par leur nom d'identité.
* Envoie une requête Elasticsearch multi-terms en un seul appel.