# language: fr @ui @search @map @mvp Fonctionnalité: Page de résultats avec carte interactive En tant qu'utilisateur Je veux visualiser les résultats sur une carte Afin de choisir des contenus proches de ma position ou d'une zone Scénario: Affichage par défaut en mode liste + carte Étant donné un utilisateur qui effectue une recherche Quand les résultats s'affichent Alors l'écran est divisé en 2 parties: | Section | Largeur | Contenu | | Liste | 40% | Résultats scrollables | | Carte | 60% | Marqueurs des résultats | Et la carte est synchronisée avec la liste Et un événement "SEARCH_RESULTS_MAP_VIEW" est enregistré Scénario: Bascule entre vue liste, carte, et mixte Étant donné un utilisateur sur la page de résultats Quand il clique sur les boutons de vue: | Bouton | Vue résultante | | [Liste] | Liste 100%, carte masquée | | [Carte] | Carte 100%, liste masquée | | [Mixte] | Liste 40% + Carte 60% | Alors la vue change instantanément Et la préférence est sauvegardée Et un événement "SEARCH_VIEW_MODE_CHANGED" est enregistré Scénario: Marqueurs groupés par zone (clustering) Étant donné 50 résultats dans une zone de 10km Quand la carte est affichée en zoom large Alors les marqueurs sont regroupés en clusters: | Cluster | Nombre de contenus | | Paris 1 | 15 | | Paris 2 | 12 | | Paris 5 | 23 | Et un clic sur un cluster zoome sur la zone Et un événement "MAP_CLUSTERING_DISPLAYED" est enregistré Scénario: Survol d'un marqueur affiche une preview Étant donné un utilisateur qui survole un marqueur sur la carte Alors une popup s'affiche avec: | Élément | Contenu | | Image miniature | Photo de couverture | | Titre | Visite du Quartier Latin | | Durée | 2h 30min | | Note | 4.8/5 (1,234 avis) | | Prix | Gratuit | | Bouton | [Voir détails] | Et un événement "MAP_MARKER_PREVIEW_SHOWN" est enregistré Scénario: Clic sur un marqueur ouvre la fiche Étant donné un utilisateur qui clique sur un marqueur Alors la fiche complète du contenu s'ouvre en modal Et la carte reste visible en arrière-plan Et un événement "MAP_MARKER_CLICKED" est enregistré Scénario: Synchronisation liste-carte bidirectionnelle Étant donné un utilisateur en vue mixte (liste + carte) Quand il scroll dans la liste Alors la carte se centre automatiquement sur les contenus visibles Et inversement, quand il déplace la carte Alors la liste affiche les contenus de la zone visible Et un événement "LIST_MAP_SYNC" est enregistré Scénario: Recherche par zone dessinée sur la carte Étant donné un utilisateur qui clique sur "Dessiner une zone" Quand il dessine un polygone sur la carte Alors seuls les contenus dans ce polygone sont affichés Et le filtre "Zone personnalisée" s'active Et un événement "MAP_CUSTOM_ZONE_DRAWN" est enregistré Scénario: Calcul d'itinéraire depuis la carte Étant donné un utilisateur qui clique sur un marqueur Quand il clique sur "Itinéraire" Alors un calcul d'itinéraire démarre depuis sa position Et s'affiche sur la carte avec: | Information | Exemple | | Distance | 3.2 km | | Temps piéton | 40 min | | Temps voiture | 12 min | | Temps vélo | 18 min | Et un événement "MAP_ROUTE_CALCULATED" est enregistré Scénario: Sauvegarde des contenus depuis la carte Étant donné un utilisateur qui consulte la carte Quand il clique sur l'icône "♡" d'un marqueur Alors le contenu est ajouté à ses favoris Et le marqueur change de couleur (rouge) Et un événement "CONTENT_SAVED_FROM_MAP" est enregistré Scénario: Affichage de la position utilisateur en temps réel Étant donné un utilisateur avec géolocalisation activée Quand il consulte la carte Alors sa position est affichée par un point bleu Et se met à jour en temps réel si il se déplace Et un cercle indique la précision GPS (±10m) Et un événement "USER_LOCATION_TRACKED_ON_MAP" est enregistré Scénario: Légende de la carte avec codes couleur Étant donné un utilisateur sur la carte Alors une légende affiche: | Couleur | Signification | | Vert | Gratuit | | Bleu | Payant | | Or | Créateur vérifié | | Rouge | Favoris | Et un événement "MAP_LEGEND_DISPLAYED" est enregistré Scénario: Export de la carte en image Étant donné un utilisateur qui clique sur "Exporter la carte" Alors une image PNG de la carte actuelle est générée Et téléchargeable avec résultats visibles Et un événement "MAP_EXPORTED" est enregistré Scénario: Mode hors ligne de la carte Étant donné un utilisateur qui télécharge une zone Quand il active le mode hors ligne Alors les tuiles de carte sont disponibles localement Et les contenus téléchargés sont accessibles Et un événement "MAP_OFFLINE_MODE_ENABLED" est enregistré Scénario: Métriques d'utilisation de la carte Étant donné que 10 000 utilisateurs ont consulté la carte Alors les indicateurs suivants sont disponibles: | Métrique | Valeur | | % d'utilisations en mode carte | 42% | | % d'utilisations en mode mixte | 48% | | % d'utilisations en mode liste | 10% | | Nombre moyen de clics sur marqueurs| 3.2 | | Taux de conversion depuis carte | 18% | Et les métriques sont exportées vers le monitoring