Descripción general
https://github.com/brianmcleer/mapswitcher-widget
El widget Selector de mapas ofrece una interfaz desplegable para navegar entre distintas aplicaciones de Experience Builder, conservando la extensión y el nivel de zoom actuales del mapa. El widget captura el fragmento hash de la URL de la aplicación de origen y lo añade a la URL de destino.
Nota: Una versión anterior de este widget tenía URL codificadas directamente en el código, lo que impedía compartirlo en la comunidad de Esri. Experience Builder 1.19 introdujo cambios incompatibles que hicieron necesario volver a desarrollar el widget. Esta versión permite a los administradores configurar las URL desde el panel de ajustes del widget, por lo que es apta para una distribución más amplia.
Ajustes de configuración
El panel de ajustes del widget contiene la configuración de los sitios:
Configuración de sitios:
- Etiqueta: Nombre que aparece en el menú desplegable
- URL: URL completa de la aplicación de Experience Builder de destino
Se pueden añadir varios sitios con el botón «Añadir sitio». Para eliminar un sitio, usa el botón «Eliminar» de la entrada correspondiente. El widget no requiere una conexión con un widget de mapa.
Funcionamiento del widget
El widget muestra un menú desplegable con las opciones de sitio configuradas. El texto del marcador de posición es «Seleccionar mapa para ver».
Funcionamiento:
Cuando un usuario selecciona un destino en el menú desplegable:
- El widget captura el fragmento hash de la URL actual (todo lo que aparece después del símbolo #).
- Este hash contiene parámetros del estado del mapa: coordenadas del centro, nivel de zoom, escala, rotación y referencia espacial
- El widget añade este hash a la URL de destino seleccionada
- El navegador abre la nueva aplicación
Funciones:
- Funciona con cualquier sistema de coordenadas (Web Mercator, State Plane, WGS84, etc.)
- Conserva el punto central, el nivel de zoom y la rotación
- URL configuradas en el panel de ajustes
Registro de cambios:
12/10/2026: El widget ahora sigue el idioma de la aplicación (?locale=, el selector de idioma, el perfil de ArcGIS o el navegador) en 39 idiomas; también incluye una guía de ayuda.
¿Tienes tus propios widgets personalizados? La misma herramienta gratuita, exb-i18n-kit, puede traducirlos con un solo comando: localize. Así completa cada frase:
- Primero, Esri. Lee las traducciones que ya están en tu instalación de Experience Builder, así que una frase como «Acercar a» usa la misma traducción que los widgets de Esri.
- Términos estándar. Los nombres de unidades, como pies y acres, provienen de Unicode CLDR, los mismos datos que usan los navegadores.
- Memoria de traducción compartida. El resto se traduce con un diccionario compartido creado con LibreTranslate, un traductor de código abierto, y los modelos Opus-MT de Helsinki-NLP para bosnio, croata y serbio. Se ejecuta gratis en GitHub, así que no necesitas una clave de API ni una cuenta.
- Conexión. También detecta el texto en inglés que está codificado directamente fuera del archivo de traducción del widget, como un ajuste predeterminado o una guía de ayuda, y lo conecta para que también se traduzca.
Las correcciones manuales siempre tienen prioridad sobre las de la máquina y nunca se sobrescriben. Algunas traducciones se generan automáticamente; si detectas alguna que no suena bien, responde aquí con una alternativa mejor.
02/10/2026: Si usas el widget personalizado Galería de mapas base, Map Switcher recordará el mapa base al cambiar a otra aplicación de EB.
23/07/2026: Se actualizó el widget Map Switcher para Experience Builder 1.21 a fin de corregir errores del editor de TypeScript, incluidos los tipos de componentes de React y las importaciones de configuración inmutables. También se incrementó la versión del widget y la versión más reciente ya está disponible en GitHub.
04/06/2026: Se añadieron package.json y package-lock.json al widget. Este widget no tiene dependencias de terceros, así que no hay nada adicional que instalar. La configuración solo requiere ejecutar el npm install habitual en la carpeta del cliente, como ya haces. Gracias a @SunshineLuke90 por la sugerencia y por explicar el proceso de empaquetado.