Widget Parcel Drafter migrado do Web AppBuilder para o Experience Builder
O widget Parcel Drafter do WAB não tem equivalente no Experience Builder. Migrei-o como um widget personalizado para o ExB Developer Edition 1.21. Publicando para testes da comunidade.
GitHub: https://github.com/brianmcleer/parcel-drafter-widget (código-fonte e versões para download). O arquivo ZIP de instalação também está anexado a esta publicação.
Contexto
Este é um pedido que está em aberto há anos:
- A discussão sobre widgets personalizados começou em dezembro de 2023, descrevendo o Parcel Drafter como a única coisa que mantém as organizações no WAB. A matriz de funcionalidades do WAB/ExB lista esse recurso como planejado para "um futuro produto web voltado à edição" — nada foi lançado.
- A ideia enviada para o ExB (abril de 2024) tem 37 votos de apoio e continua aberta, com comentários até julho de 2026 de condados, cidades e profissionais de engenharia civil e militar, descrevendo fluxos de trabalho de avaliação imobiliária, auditoria, planejamento e imóveis que dependem desse recurso. Os requisitos mencionados são: ajuste a pontos e vértices, azimutes de raio/tangente/corda, comprimento de arco e corda, e parâmetros de erro de fechamento — todos atendidos abaixo.
- No blog do roteiro do ExB para 2026, o gerente de produto confirmou em junho de 2026 que não há novidades sobre esse widget, e os pedidos continuam sendo publicados nos comentários.
Um comentário recente na ideia resume a situação: é necessário um widget personalizado temporário para preencher essa lacuna. Este é esse widget.
Recursos
- Novo levantamento: ponto inicial por clique no mapa ou coordenadas digitadas; entrada de azimute/comprimento/raio com desenho em tempo real
- Formatos de azimute: S20-25-25W, 20-25-25-3, dd.mmss, graus decimais; * copia a linha anterior; *tb continua tangente à linha ou curva anterior
- Tipos de linha de limite e de conexão, com padrão configurável
- Azimute, distância, proporção e área calculada do erro de fechamento; regra da bússola aplicada dentro da distância/proporção de ajuste configurada
- Rotação e escala por texto ou arrastando no mapa ao redor de um ponto de ancoragem
- Reordenação dos segmentos do levantamento por arraste ou pelas teclas de seta
- O ponto inicial e os cliques de digitalização se ajustam às camadas configuradas dentro da tolerância
- Editar levantamento: parcelas fechadas selecionadas pela geometria poligonal; parcelas abertas, por percurso de conectividade a partir da linha clicada; linhas ordenadas de ponta a ponta
- Salvar edição atualiza a feição poligonal existente e substitui suas linhas (excluir + adicionar em um único applyEdits); salvar como novo cria feições
- Configurações: seleção de mapa, três camadas de destino com camadas de linha/ponto relacionadas detectadas automaticamente a partir do serviço da camada poligonal, menus suspensos de campos COGO baseados no esquema da camada, configurações de atributos (campos fixos, campos de pop-up do webmap ou lista personalizada com aliases), configurações de erro de fechamento e ajuste
Observações técnicas
- Cálculos topográficos (geodésicas de Vincenty, arcos, erro de fechamento, regra da bússola) migrados diretamente do código-fonte do WAB
- Os serviços de geometria são carregados em tempo de execução por meio de loadArcGISJSAPIModules: primeiro os módulos modernos de operadores (projectOperator, geodeticAreaOperator etc.), com fallback para projection/geometryEngine clássicos em SDKs mais antigos. Os módulos clássicos foram removidos nas versões do SDK incluídas atualmente no ExB
- A projeção funciona em qualquer referência espacial da organização; a rotação/escala por arraste não se limita ao Web Mercator, como no WAB
- WCAG 2.1 AA: nomes programáticos em todos os controles, grade do levantamento exposta como tabela com rótulos por linha, erros via role=alert e aria-describedby, região dinâmica para atualizações do erro de fechamento, Esc sai das ferramentas do mapa, reordenação pelo teclado, dicas de ferramenta com ícone de informações em todas as configurações e métricas, tokens de tema jimu alinhados ao Calcite
Limitações conhecidas
- Somente textos em inglês (o WAB era fornecido em mais de 30 idiomas)
- Não há seletor de símbolos por tipo de linha nas configurações; os símbolos são configurados em config.json
- Ao salvar edições, os pontos de vértice existentes não são modificados (os pontos não são rastreados pelo ID do objeto); os pontos são criados apenas no primeiro salvamento
Testes solicitados
- Descrições com muitas curvas: arcos maiores, comprimentos negativos de corda, curvas *tb consecutivas
- Referências espaciais diferentes de Web Mercator
- Editar e salvar em camadas de parcelas de produção: confirmar que o ID do objeto do polígono não mudou e que a quantidade de linhas está correta
- Comportamento do erro de fechamento próximo aos limites de ajuste configurados
Relate erros de análise, problemas de posicionamento da geometria ou erros no console nos comentários, ou abra um problema no GitHub.
Registro 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; inclui guia de ajuda.
Você também tem widgets personalizados? A mesma ferramenta gratuita, exb-i18n-kit, pode traduzi-los com um único comando: localize. Veja como ela completa cada etapa:
- Esri primeiro. Ela lê as traduções que já existem na instalação do Experience Builder, então uma frase como “Zoom to” usa a mesma tradução dos próprios widgets da Esri.
- Termos padronizados. Os nomes das unidades, como pés e acres, vêm do Unicode CLDR, os mesmos dados usados pelos navegadores.
- Memória de tradução compartilhada. O restante 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 roda gratuitamente no GitHub, então você não precisa de chave de API nem de 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.
Correções feitas manualmente sempre prevalecem sobre as traduções automáticas e nunca são sobrescritas. Algumas traduções são automáticas, então responda aqui com uma sugestão melhor se encontrar algo estranho.
16/09/2026:
- Novidade em Rótulos dos segmentos nas configurações: posição do rótulo (ao lado ou sobre a linha) e distância da linha. Uma distância negativa muda o lado.
- Ao editar uma parcela em uma camada de feições hospedada, uma segunda geometria poligonal era adicionada sobre a original em vez de atualizá-la. O widget localiza o polígono da parcela com base no ponto clicado e, como você clica em uma linha de limite, esse ponto fica exatamente na borda do polígono. Uma camada hospedada não considera isso uma interseção com o polígono, então nada era encontrado e o salvamento adicionava outro polígono. Um serviço de mapa considera que há interseção, por isso o problema só aparecia nas camadas hospedadas. As linhas sempre eram substituídas corretamente; apenas os polígonos se sobrepunham.
- Agora, a busca cria uma zona de tolerância ao redor do clique, usando a mesma tolerância da seleção de linhas, e recorre a um ponto dentro do limite formado pelas linhas selecionadas. Ao carregar um levantamento, o widget também avisa quando nenhum polígono existente foi encontrado, para que você saiba antes de salvar que um novo será adicionado.
- Agora, a grade do levantamento se ajusta a painéis estreitos do widget. O raio e o tipo de linha passam para uma segunda linha, abaixo do azimute e do comprimento, então o widget não precisa mais de um painel largo.
11/09/2026:
- O polígono da parcela agora é criado ao salvar. As novas linhas têm como padrão Linha de limite, como no Parcel Drafter do Web AppBuilder.
- Agora você pode escolher entre desenhar uma Linha de limite e uma Linha de conexão: há um menu suspenso Tipo de linha na barra de ferramentas e na linha de entrada, e qualquer linha da grade pode ser alterada depois de adicionada.
- As mensagens ao salvar agora informam quando o polígono da parcela foi criado ou atualizado e avisam se nenhuma linha estiver marcada como Linha de limite.
- Novo guia de ajuda integrado: clique no botão de ponto de interrogação para abrir um guia curto e pesquisável sobre como inserir linhas, desenhar no mapa, lidar com o erro de fechamento, salvar e exportar.
Se o widget já estiver em um aplicativo, abra as configurações do widget e defina Tipo de linha padrão como Linha de limite, ou adicione o widget novamente. Novos aplicativos recebem automaticamente o novo padrão.
Colaboração
O condado de Polk, Oregon, criou seu próprio widget Traverse para o Experience Builder (Nicholas Cramer @ncramer11 e Eric McAvoy @polkor_mcavoye ). Publicação da comunidade:
https://community.esri.com/t5/experience-builder-custom-widgets/traverse-widget-1-0/m-p/1706412
e repositório: https://github.com/ncramer11/traverse
O widget deles é um rascunho rápido para desenho preciso e exportação. Este serve para manter uma fonte de dados de parcelas existente.
Recursos migrados do widget Traverse deles:
- Sufixos de correntes e varas (ch, rd) para descrições de imóveis com unidades mistas
- Rótulos de azimute e distância em cada linha, que podem ser ativados ou desativados
- Ajuste a todas as camadas de feições visíveis via SketchViewModel, que pode ser ativado ou desativado
- Pop-ups desativados enquanto uma ferramenta do mapa está ativa
- Exportação GeoJSON com curvas densificadas
- Substituição da cor da sessão
- Fluxo de entrada pelo teclado numérico. A tecla + avança do azimute para o comprimento e confirma a linha; a tecla / vai para o raio; o foco retorna ao azimute
Suporte a descrições legais de imóveis (Manual dos Avaliadores 215):
- Sufixos de links e varas (lk, va)
- Azimutes podem ser colados diretamente de documentos de registro. N45°30'00"E é interpretado da mesma forma que N45-30-00E
- Exportação de rascunho da descrição legal de rumos e limites do imóvel. Alinhamento de início, Ponto de Início, rumos subsequentes, descrição de raio/arco/corda da curva e área de fechamento. Identificada como rascunho, requer revisão
Correção identificada nos testes do condado de Polk: ao limpar um levantamento, os rótulos continuavam no mapa. Corrigido.
Testes solicitados
- Ajuste em conjuntos densos de parcelas
- Fluxo pelo teclado numérico para entrada de grande volume
- Resultado da descrição legal comparado com a redação de escrituras reais, especialmente as curvas
- Correntes, links, varas e varas (unidade) comparados com descrições históricas
Problemas nos comentários ou no GitHub.