CÓMO

Identificar un rango de números que faltan en un campo utilizando Arcade en Portal for ArcGIS y Map Viewer de ArcGIS Online.

Last Published: June 6, 2024

Resumen

En Portal for ArcGIS y Map Viewer de ArcGIS Online, identificar automáticamente los números faltantes en un rango puede agilizar el proceso de detección y corrección de errores. Esto puede ser muy importante en datasets de gran tamaño en los que la comprobación manual resultaría poco práctica.

Este artículo describe el flujo de trabajo para identificar un rango de números que faltan en un campo para ventanas emergentes utilizando Arcade en Portal for ArcGIS y Map Viewer de ArcGIS Online. En este ejemplo, faltan algunos números del rango de números (del 1 al 20) que aparece en el campo TestNumber, como se muestra en la imagen siguiente.

La tabla de atributos en ArcGIS Online   

Procedimiento

  1. En Portal for ArcGIS o ArcGIS Online Map Viewer, abra el mapa web que contiene el dataset de números.
  2. En la barra de herramientas Contenido (oscura), haga clic en Capas para abrir el panel Capas y seleccione la capa con el elemento emergente que se ha previsto configurar.
  3. En la barra de herramientas Configuración (clara), haga clic en Elementos emergentes.
  4. En el panel Elementos emergentes, haga clic en Expresiones de atributos en Opciones.
  5. En el panel Expresiones de atributos, haga clic en + Agregar expresión.
  6. En la ventana del editor, cree un nombre para la expresión de Arcade y especifique la expresión de Arcade.
    1. Cree una matriz que represente el rango de los números deseados. En este ejemplo, el rango se establece de 1 a 20.
var range = [];
for (var i = 1; i <= 20; i++) {
    Push(range, i);
}
  1. Recopile todos los valores de las entidades de la capa seleccionada. Sustituya '<layerName>' y '<fieldName>' por los nombres de capa y campo respectivamente.
var features = FeaturesetByName($map, "<layerName>", ["<fieldName>"]);
  1. Inicialice una matriz para almacenar los números.
var testNumbers = [];
  1. Itere entre las entidades y recopile los números.
for (var f in features) {
    if (!IsEmpty(f.TestNumber)) {
        Push(testNumbers, Number(f.TestNumber));
    }
}
  1. Compruebe si la matriz de números está vacía.
if (Count(testNumbers) == 0) {
    return "No test numbers available.";
}
  1. Ordene la matriz de números.
testNumbers = Sort(testNumbers);
  1. Inicialice una matriz vacía para almacenar los números que faltan.
var missingNumbers = [];
  1. Recorra el rango especificado y agregue los números que faltan a la matriz 'missingNumbers'.
for (var i in range) {
    if (IndexOf(testNumbers, range[i]) == -1) {
        Push(missingNumbers, range[i]);
    }
}
  1. Convierta la matriz 'WantingNumbers' en una cadena.
var missingNumbersString = Concatenate(missingNumbers, ", ");
  1. Devuelva los números que faltan o un mensaje si no faltan ninguno.
if (Count(missingNumbers) == 0) {
    return "No missing test numbers within the range 1 to 20.";
} else {
    return "Missing test numbers within the range 1 to 20: " + missingNumbersString;
}

El código que aparece a continuación muestra el ejemplo del script de trabajo completo.

var range = [];
for (var i = 1; i <= 20; i++) {
    Push(range, i);
}

var features = FeaturesetByName($map, "Pointsss", ["TestNumber"]);

var testNumbers = [];

for (var f in features) {
    if (!IsEmpty(f.TestNumber)) {
        Push(testNumbers, Number(f.TestNumber));
    }
}

if (Count(testNumbers) == 0) {
    return "No test numbers available.";
}

testNumbers = Sort(testNumbers);

var missingNumbers = [];

for (var i in range) {
    if (IndexOf(testNumbers, range[i]) == -1) {
        Push(missingNumbers, range[i]);
    }
}

var missingNumbersString = Concatenate(missingNumbers, ", ");

if (Count(missingNumbers) == 0) {
    return "No missing test numbers within the range 1 to 20.";
} else {
    return "Missing test numbers within the range 1 to 20: " + missingNumbersString;
}
  1. Haga clic en Hecho.
  1. En el panel Expresiones de atributos, haga clic en el botón Anterior El botón Anterior. situado sobre la expresión de Arcade recién creada.
  2. En el panel Elementos emergentes, haga clic en Lista de campos > Seleccionar campos.
  3. En Expresiones, seleccione la expresión de Arcade recién creada y haga clic en Hecho.

La imagen siguiente muestra los números que faltan en un rango específico a través de una ventana emergente.

Los números que faltan aparecen en la ventana emergente

Id. de artículo: 000032685

Obtenga soporte con IA

Resuelva su problema rápidamente con el chatbot de inteligencia artificial de soporte de Esri.

Empieza a chatear ahora

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Empieza a chatear ahora

Ir a opciones de descarga