4.1 KiB
4.1 KiB
Plan: Ajouter des cartes de localisation aux pages acheteur et titulaire
Date: 2026-04-28
Statut: Approuvé
Objectif: Ajouter des cartes interactives montrant la localisation des organisations sur les pages acheteur et titulaire
Contexte
- Les pages acheteur et titulaire ont déjà des placeholders pour les cartes (
acheteur_mapettitulaire_map) - La fonction
point_on_map()existe déjà danssrc/figures.pymais utilise un centrage fixe sur la France - Les données de localisation proviennent de l'API Annuaire des Entreprises
- Les codes départementaux sont disponibles et plus fiables que les coordonnées pour la détection de région
Exigences
1. Carte interactive
- Localisation: Colonne de droite dans la section d'informations sur l'organisation
- Taille: 400px de largeur × 300px de hauteur (fixe)
- Contenu: Carte centrée sur la France ou le département d'outre-mer approprié avec un point rouge à l'emplacement de l'organisation
- Niveau de zoom: Approprié pour montrer l'Hexagone ou le département d'outre-mer spécifique
- Style: Fond de carte clair avec point rouge visible
- Interactivité: Carte zoomable et déplaçable (pas de configuration statique)
2. Sources de données
- Utiliser les colonnes
acheteur_latitudeetacheteur_longitudepour les pages acheteur - Utiliser les colonnes
titulaire_latitudeettitulaire_longitudepour les pages titulaire - Utiliser les codes départementaux (
acheteur_departement_code,titulaire_departement_code) pour la détection de région - Solution de repli: Si les coordonnées ou codes départementaux sont manquants ou invalides, afficher une div vide
3. Détection de région
- Départements métropolitains: Codes à 2 caractères (ex: "75" pour Paris) → Carte Hexagone
- Départements d'outre-mer:
- "971" → Guadeloupe
- "972" → Martinique
- "973" → Guyane
- "974" → La Réunion
- "976" → Mayotte
- Code département manquant: Retourner une div vide (pas de détection basée sur les coordonnées)
4. Gestion des erreurs
- Coordonnées invalides → div vide
- Code département manquant → div vide
- Échec de l'API Annuaire → div vide (comportement existant)
- Format de code département invalide → div vide
Implémentation
Fichiers à modifier
1. src/figures.py - Améliorer la fonction point_on_map()
Ligne 178-209: Remplacer la fonction existante par une version améliorée avec:
- Détection de région basée sur les codes départementaux
- Configuration de carte interactive (zoomable)
- Point plus grand (size=15)
- Commentaires en français
2. src/pages/acheteur.py - Mettre à jour le callback
Ligne 249-297: Modifier update_acheteur_infos() pour:
- Extraire le code département du code postal
- Passer le code département à
point_on_map() - Ajouter des commentaires en français
3. src/pages/titulaire.py - Mettre à jour le callback
Ligne 259-297: Modifier update_titulaire_infos() pour:
- Extraire le code département du code postal
- Passer le code département à
point_on_map() - Ajouter des commentaires en français
Plan de Test
Cas de test prioritaires
- Organisation métropolitaine: Code département "75" (Paris) → Carte Hexagone
- Organisation à La Réunion: Code département "974" → Carte centrée sur La Réunion
- Code département manquant: Retourne une div vide
- Coordonnées invalides: Retourne une div vide
- Interactivité: Vérifier zoom et déplacement
Critères d'acceptation
- Cartes fonctionnelles avec codes départementaux valides
- Div vide pour codes manquants/invalides
- Cartes correctement centrées et zoomées
- Interactivité (zoom et déplacement)
- Point de localisation visible (size=15)
Approbation
Plan approuvé avec spécifications:
- Réutiliser et améliorer
point_on_map - Retourner div vide sans code département
- Point légèrement plus grand
- Cartes zoomables
- Utiliser codes départementaux pour détection de région
- Commentaires en français