Présentation
https://github.com/brianmcleer/mapswitcher-widget
Le widget de changement de carte propose une liste déroulante permettant de passer d’une application Experience Builder à une autre tout en conservant l’étendue et le niveau de zoom actuels de la carte. Il récupère le fragment de hachage de l’URL de l’application source et l’ajoute à l’URL de destination.
Remarque : Une version antérieure de ce widget contenait des URL codées en dur, ce qui empêchait son partage sur Esri Community. Experience Builder 1.19 a introduit des changements incompatibles qui ont nécessité la refonte du widget. Cette version permet aux administrateurs de configurer les URL dans le panneau de paramètres du widget, ce qui la rend adaptée à une diffusion plus large.
Paramètres de configuration
Le panneau de paramètres du widget contient la configuration des sites :
Configuration des sites :
- Libellé: Le nom affiché dans la liste déroulante
- URL: L’URL complète de l’application Experience Builder cible
Vous pouvez ajouter plusieurs sites à l’aide du bouton « Ajouter un site ». Vous pouvez supprimer des sites à l’aide du bouton « Supprimer » associé à chaque entrée. Le widget ne nécessite aucune connexion à un widget de carte.
Fonctionnement du widget
Le widget affiche un menu déroulant contenant les options de site configurées. Le texte indicatif est « Sélectionner une carte à afficher ».
Fonctionnement :
Lorsqu’un utilisateur sélectionne une destination dans la liste déroulante :
- Le widget récupère le fragment de hachage de l’URL actuelle (tout ce qui suit le symbole #)
- Ce hachage contient les paramètres d’état de la carte : coordonnées du centre, niveau de zoom, échelle, rotation et référence spatiale
- Le widget ajoute ce hachage à l’URL de destination sélectionnée
- Le navigateur ouvre la nouvelle application
Fonctionnalités :
- Fonctionne avec tous les systèmes de coordonnées (Web Mercator, State Plane, WGS84, etc.)
- Conserve le point central, le niveau de zoom et la rotation
- URL configurées dans le panneau de paramètres
Historique des modifications :
12/10/2026 : Le widget suit désormais la langue de l’application (?locale=, le sélecteur de langue, le profil ArcGIS ou le navigateur) dans 39 langues ; guide d’aide inclus.
Vous avez créé vos propres widgets personnalisés ? Le même outil gratuit, exb-i18n-kit, peut les traduire en une seule commande : localize. Voici comment il traduit chaque expression :
- Esri d’abord. Il récupère les traductions déjà présentes dans votre installation d’Experience Builder ; une expression comme « Zoom to » reprend donc la formulation utilisée par les widgets Esri.
- Termes standard. Les noms d’unités comme les pieds et les acres proviennent d’Unicode CLDR, la même base de données qu’utilisent les navigateurs.
- Mémoire de traduction partagée. Le reste provient d’un dictionnaire partagé constitué avec LibreTranslate, un traducteur open source, ainsi que les modèles Opus-MT de Helsinki-NLP pour le bosnien, le croate et le serbe. L’outil fonctionne gratuitement sur GitHub : vous n’avez donc besoin ni d’une clé API ni d’un compte.
- Raccordement. Il repère également les textes anglais codés en dur en dehors du fichier de traduction du widget, par exemple un paramètre par défaut ou un guide d’aide, et les relie au système pour qu’ils soient eux aussi traduits.
Les corrections faites à la main ont toujours priorité sur les traductions automatiques et ne sont jamais écrasées. Certaines traductions sont générées automatiquement ; si vous en repérez une qui ne convient pas, répondez ici en proposant une meilleure formulation.
02/10/2026 : En utilisant le widget personnalisé Basemap Gallery, Map Switcher mémorisera le fond de carte lors du passage à une autre application EB.
23/07/2026 : Mise à jour du widget Map Switcher pour Experience Builder 1.21 afin de corriger les erreurs de l’éditeur TypeScript, notamment celles liées au typage des composants React et aux imports de configuration immuable. La version du widget a également été incrémentée et la dernière version est désormais disponible sur GitHub.
04/06/2026 : Ajout de package.json et package-lock.json au widget. Ce widget n’a aucune dépendance tierce : rien de plus n’est donc à installer. La configuration se limite à l’installation standard avec npm dans votre dossier client, comme vous le faites déjà. Merci à @SunshineLuke90 pour la suggestion et pour avoir expliqué la méthode de création du package.