Visão geral
https://github.com/brianmcleer/mapswitcher-widget
O widget de alternância de mapas oferece uma interface suspensa para navegar entre diferentes aplicativos do Experience Builder, preservando a extensão e o nível de zoom atuais do mapa. O widget captura o fragmento hash da URL do aplicativo de origem e o acrescenta à URL de destino.
Observação: Uma versão anterior deste widget tinha URLs definidas diretamente no código, o que impedia seu compartilhamento na Esri Community. O Experience Builder 1.19 introduziu alterações incompatíveis que exigiram o desenvolvimento de uma nova versão do widget. Esta versão permite que os administradores configurem URLs pelo painel de configurações do widget, tornando-o adequado para uma distribuição mais ampla.
Configurações
O painel de configurações do widget contém a configuração dos sites:
Configuração dos sites:
- Rótulo: O nome de exibição mostrado na lista suspensa
- URL: A URL completa do aplicativo de destino do Experience Builder
É possível adicionar vários sites usando o botão "Adicionar site". Os sites podem ser removidos pelo botão "Remover" de cada item. O widget não requer conexão com um widget de mapa.
Funcionalidade do widget
O widget exibe um menu suspenso com as opções de sites configuradas. O texto do espaço reservado é "Selecione o mapa para visualizar".
Funcionalidade:
Quando um usuário seleciona um destino no menu suspenso:
- O widget captura o fragmento hash da URL atual (tudo o que vem depois do símbolo #)
- Esse hash contém parâmetros do estado do mapa: coordenadas do centro, nível de zoom, escala, rotação e referência espacial
- O widget acrescenta esse hash à URL de destino selecionada
- O navegador navega até o novo aplicativo
Recursos:
- Funciona com qualquer sistema de coordenadas (Web Mercator, State Plane, WGS84 etc.)
- Preserva o ponto central, o nível de zoom e a rotação
- URLs configuradas no painel de configurações
Histórico de alterações:
12/10/2026: O widget agora acompanha o idioma do aplicativo (?locale=, o seletor de idioma, o perfil do ArcGIS ou o navegador) em 39 idiomas, incluindo o guia de ajuda.
Você tem seus próprios widgets personalizados? A mesma ferramenta gratuita, exb-i18n-kit, pode traduzi-los com um único comando: localize. Veja como ela preenche cada frase:
- Primeiro, a Esri. Ela usa as traduções já existentes na sua instalação do Experience Builder, então uma frase como “Zoom to” usa a mesma redação dos próprios widgets da Esri.
- Termos padrão. Os nomes de unidades, como pés e acres, vêm do Unicode CLDR, os mesmos dados usados pelos navegadores.
- Memória de tradução compartilhada. O que ainda faltar vem de um dicionário compartilhado, criado com o LibreTranslate, um tradutor de código aberto, além dos modelos Opus-MT da Helsinki-NLP para bósnio, croata e sérvio. Ele funciona gratuitamente no GitHub, então você não precisa de uma chave de API nem de uma conta.
- Integração. Ela também encontra textos em inglês codificados fora do arquivo de tradução do widget, como uma configuração padrão ou um guia de ajuda, e os integra para que também sejam traduzidos.
As correções feitas manualmente sempre prevalecem sobre as da máquina e nunca são sobrescritas. Algumas traduções são geradas por máquina; se encontrar alguma inadequada, responda aqui com uma sugestão melhor.
02/10/2026: Se estiver usando o widget personalizado Galeria de mapas-base, o Map Switcher manterá o mapa-base ao alternar para outro aplicativo do Experience Builder.
23/07/2026: O widget Map Switcher foi atualizado para o Experience Builder 1.21, corrigindo erros do editor TypeScript, incluindo a tipagem dos componentes React e as importações de configurações imutáveis. A versão do widget também foi atualizada e a versão mais recente já está disponível no GitHub.
04/06/2026: Foram adicionados package.json e package-lock.json ao widget. Este widget não tem dependências de terceiros, então não há nada extra para instalar. A configuração consiste apenas em executar o npm install padrão na pasta client, como você já faz. Agradecimentos a @SunshineLuke90 pela sugestão e por explicar a abordagem de empacotamento.