Widget de trazado de parcelas portado de Web AppBuilder a Experience Builder
El widget Parcel Drafter de WAB no tiene un equivalente en Experience Builder. Lo porté como widget personalizado para ExB Developer Edition 1.21. Lo comparto para que la comunidad lo pruebe.
GitHub: https://github.com/brianmcleer/parcel-drafter-widget (código fuente y versiones descargables). El archivo ZIP de instalación también está adjunto a esta publicación.
Antecedentes
Es una solicitud pendiente desde hace años:
- El hilo de widgets personalizados se abrió en diciembre de 2023 y describía Parcel Drafter como lo único que mantenía a las organizaciones en WAB. La matriz de funcionalidades de WAB/ExB indica que esta capacidad está prevista para «un futuro producto web centrado en la edición»: todavía no se ha publicado nada.
- La propuesta de ExB Ideas (abril de 2024) tiene 37 votos de apoyo y sigue abierta, con comentarios hasta julio de 2026 de condados, ciudades y profesionales de la ingeniería civil y militar que describen flujos de trabajo de tasación, auditoría, planificación y bienes inmuebles que dependen de esta funcionalidad. Entre los requisitos mencionados: ajuste a puntos y vértices, rumbos de radio/tangente/cuerda, longitud de arco y cuerda, y parámetros de error de cierre: todo está incluido a continuación.
- En el blog de la hoja de ruta de ExB para 2026, el gerente de producto confirmó en junio de 2026 que no hay novedades sobre este widget y que se siguen publicando solicitudes en los comentarios.
Un comentario reciente en la propuesta resume la situación: hace falta un widget personalizado provisional para cerrar la brecha. Este es ese widget.
Funciones
- Nuevo itinerario: punto inicial mediante clic en el mapa o coordenadas escritas; introducción de rumbo/longitud/radio con dibujo en tiempo real
- Formatos de rumbo: S20-25-25W, 20-25-25-3, dd.mmss, grados decimales; * copia el tramo anterior; *tb continúa en tangente al tramo o curva anterior
- Tipos de línea de lindero y de conexión, con valor predeterminado configurable
- Rumbo, distancia, proporción y área calculada del error de cierre; se aplica la regla de la brújula dentro de la distancia/proporción de ajuste configurada
- Rotación y escala mediante texto o arrastre en el mapa alrededor de un punto de anclaje
- Reordenación de los tramos del itinerario mediante arrastre o teclas de flecha
- El punto inicial y los clics de digitalización se ajustan a las capas configuradas dentro de la tolerancia establecida
- Editar itinerario: las parcelas cerradas se seleccionan mediante su huella poligonal; las abiertas, mediante un recorrido de conectividad desde la línea seleccionada; las líneas se ordenan de extremo a extremo
- Al guardar una edición, se actualiza la entidad poligonal existente y se sustituyen sus líneas (eliminación y adición en una sola llamada a applyEdits); al guardar uno nuevo, se crean entidades
- Ajustes: selección del mapa, tres capas de destino con capas relacionadas de líneas y puntos detectadas automáticamente a partir del servicio de la capa poligonal, listas desplegables de campos COGO tomadas del esquema de la capa, ajustes de atributos (campos fijos, campos de ventanas emergentes del mapa web o lista personalizada con alias), configuración del error de cierre y del ajuste
Notas técnicas
- Cálculos topográficos (geodésicas de Vincenty, arcos, error de cierre, regla de la brújula) portados directamente del código fuente de WAB
- Los servicios de geometría se cargan durante la ejecución mediante loadArcGISJSAPIModules: primero los módulos de operadores modernos (projectOperator, geodeticAreaOperator, etc.) y, como alternativa para los SDK más antiguos, projection/geometryEngine clásicos. Los módulos clásicos se eliminaron en las versiones del SDK que incluye actualmente ExB
- La proyección funciona con cualquier referencia espacial de la organización; el giro y escalado mediante arrastre no se limita a Web Mercator, como en WAB
- WCAG 2.1 AA: nombres programáticos en todos los controles, cuadrícula del itinerario expuesta como tabla con etiquetas para cada línea, errores mediante role=alert y aria-describedby, región activa para las actualizaciones del error de cierre, Escape sale de las herramientas del mapa, reordenación con teclado, información emergente con icono de información en cada ajuste y métrica, tokens de tema jimu alineados con Calcite
Limitaciones conocidas
- Solo cadenas en inglés (WAB incluía más de 30 idiomas)
- No hay selector de símbolos por tipo de línea en los ajustes; los símbolos se configuran en config.json
- Al guardar una edición, los puntos de nodo existentes no se modifican (los puntos no se rastrean por ID de objeto); solo se crean puntos al guardar por primera vez
Pruebas solicitadas
- Descripciones con muchas curvas: arcos mayores, longitudes de cuerda negativas, curvas *tb consecutivas
- Referencias espaciales distintas de Web Mercator
- Editar y guardar en capas de parcelas de producción: confirmar que el ID de objeto del polígono no cambia y que el número de líneas es correcto
- Comportamiento del error de cierre cerca de los umbrales de ajuste configurados
Informen de errores de análisis, problemas de ubicación de geometrías o errores de consola en los comentarios, o creen una incidencia en GitHub.
Registro de cambios
10/12/2026: Ahora el widget 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 la 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 «Zoom to» usa la misma formulación que los widgets de Esri.
- Términos estándar. Los nombres de unidades, como pies y acres, proceden de Unicode CLDR, los mismos datos que utilizan los navegadores.
- Memoria de traducción compartida. El resto procede de un diccionario compartido creado con LibreTranslate, un traductor de código abierto, además de 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.
- Integración. También detecta el texto en inglés 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 prevalecen sobre las automáticas y nunca se sobrescriben. Algunas traducciones se generan automáticamente; si detectas alguna poco acertada, responde aquí con una alternativa mejor.
9/16/26:
- Novedad en Etiquetas de tramos, dentro de los ajustes: posición de la etiqueta (al lado o sobre la línea) y distancia respecto a la línea. Una distancia negativa cambia la etiqueta de lado.
- Al editar una parcela en una capa de entidades alojada, se añadía un segundo polígono encima del original en lugar de actualizarlo. El widget busca el polígono de la parcela a partir del punto donde haces clic y, como haces clic en una línea del lindero, ese punto queda justo sobre el borde del polígono. Una capa alojada no considera que eso intersecte el polígono, así que no encontraba nada y al guardar añadía uno nuevo. Un servicio de mapas sí lo considera una intersección, por eso solo ocurría con las capas alojadas. Las líneas siempre se sustituían correctamente; solo se duplicaba el polígono.
- Ahora la búsqueda aplica al clic una zona de influencia con la misma tolerancia que se usa para seleccionar las líneas y, como alternativa, busca un punto dentro del lindero formado por las líneas seleccionadas. Al cargar un itinerario, también se indica si no se encontró ningún polígono existente, para que sepas antes de guardar que se añadirá uno nuevo.
- Ahora la cuadrícula del itinerario se adapta a los paneles estrechos del widget. El radio y el tipo de línea pasan a una segunda línea, debajo del rumbo y la longitud, así que el widget ya no necesita un panel ancho para mostrarlos.
9/11/26:
- Ahora el polígono de la parcela se crea al guardar. Las líneas nuevas tienen de forma predeterminada el tipo Línea de lindero, igual que en Parcel Drafter de Web AppBuilder.
- Ahora puedes elegir entre dibujar una Línea de lindero y una Línea de conexión: hay una lista desplegable de Tipo de línea en la barra de herramientas y en la fila de entrada, y puedes cambiar cualquier línea de la cuadrícula después de añadirla.
- Los mensajes al guardar ahora indican si se creó o actualizó el polígono de la parcela y avisan si ninguna línea está marcada como Línea de lindero.
- Nueva guía de ayuda integrada: haz clic en el botón con el signo de interrogación para abrir una guía breve con función de búsqueda que explica cómo introducir líneas, dibujar en el mapa, gestionar el error de cierre, guardar y exportar.
Si ya tienes el widget en una aplicación, abre sus ajustes y establece Línea de lindero como Tipo de línea predeterminado, o vuelve a añadir el widget. En las aplicaciones nuevas, este valor predeterminado se configura automáticamente.
Colaboración
El condado de Polk, Oregón, creó su propio widget Traverse para Experience Builder (Nicholas Cramer @ncramer11 y Eric McAvoy @polkor_mcavoye ). Publicación de la comunidad:
https://community.esri.com/t5/experience-builder-custom-widgets/traverse-widget-1-0/m-p/1706412
y repositorio: https://github.com/ncramer11/traverse
El suyo es un borrador rápido para dibujar con precisión y exportar. Este sirve para mantener una fuente de datos de parcelas existente.
Adaptado de su widget Traverse:
- Sufijos de cadenas y varas (ch, rd) para descripciones de escrituras con unidades mixtas
- Etiquetas de rumbo y distancia en cada línea, activables y desactivables
- Ajuste a todas las capas de entidades visibles mediante SketchViewModel, activable y desactivable
- Ventanas emergentes desactivadas mientras hay una herramienta de mapa activa
- Exportación GeoJSON con curvas densificadas
- Anulación del color de la sesión
- Flujo de entrada con teclado numérico. La tecla + del teclado numérico pasa del rumbo a la longitud y confirma la línea; la tecla / salta al radio y el foco vuelve al rumbo
Compatibilidad con descripciones legales (Manual de tasadores 215):
- Sufijos de eslabones y varas (lk, va)
- Los rumbos se pueden pegar directamente desde documentos registrales. N45°30'00"E se interpreta igual que N45-30-00E
- Exportación de borradores de descripciones legales de rumbos y linderos. Empalme inicial, punto de partida, tramos a continuación, lenguaje de radio/arco/cuerda de curvas y superficie de cierre. Marcado como borrador; requiere revisión
Corrección de error detectado durante las pruebas del condado de Polk: al borrar un itinerario, las etiquetas permanecían en el mapa. Corregido.
Pruebas solicitadas
- Ajuste en parcelas densas
- Flujo con teclado numérico para introducir datos en grandes volúmenes
- Resultado de las descripciones legales comparado con el lenguaje de escrituras reales, especialmente en las curvas
- Cadenas, eslabones, varas y varas castellanas en descripciones históricas
Incidencias en los comentarios o en GitHub.