Usar Arcade para graficar el tiempo que una solicitud está abierta

4679
42
05-15-2017 09:11 AM
Labels (1)
XanderBakker
Esri Esteemed Contributor
2 42 4,679

Arcade (ArcGIS Arcade | ArcGIS for Developers ) es un nuevo lenguaje en la plataforma ArcGIS que nos permite graficar datos de una manera dinámica. Arcade está disponible en ArcGIS Online y en ArcGIS Pro.

Cuando estamos trabajando con solicitudes de clientes, el estado es muy importante, pero además es muy importante saber cuánto tiempo la solicitud está abierta. Mientras más tiempo no se atienda la solicitud, habrá más posibilidad de obtener un cliente descontento con el servicio.


¿Pero cómo graficamos este tiempo de estar abierta la solicitud, si solamente contamos con el momento en que fue registrado? Para este fin disponemos de Arcade.

Abajo un ejemplo de cómo resolver la visualización. En nuestro servicio alojado en ArcGIS Online contamos con dos campos de interés:

  • Estado – contiene los valores “abierto” y “cerrado”
  • FechaHora – contiene la fecha y hora del registro de la solicitud

Cargamos la capa a un mapa web y entramos a configurar la simbología. En el listado desplegable de los atributos, encontramos la opción “Nueva expresión”:

En la ventana de personalizar la expresión, se puede configurar la expresión:

1) editar el título (nombre del campo)
2) configurar la expresión (el script de Arcade)
3) los campos disponibles y ayuda de funciones de Arcade

Antes de todo editamos el título:

En este caso la lógica del script debe detectar si la solicitud está abierta o ya está cerrada. En caso que está cerrada debe devolver el texto “Cerrado”. En caso de estar abierta, debe determinar el tiempo en minutos trascurrido desde que se registró la solicitud y clasificar este tiempo en rangos personalizados.

Esto se puede lograr con el siguiente script:

var estado = Text($feature.Estado);
var fecha_registro = Date($feature.FechaHora);
var fecha_ahora = Now();
var clase = 'Cerrado';

if (estado == 'abierto') {
    var tiempo_minutos = DateDiff(fecha_ahora, fecha_registro, 'minutes');
    if (tiempo_minutos < 30) {
        clase = 'tiempo abierto: 0 - 30 minutos';
    } else if (tiempo_minutos < 60) {
        clase = 'tiempo abierto: 30 - 60 minutos';
    } else if (tiempo_minutos < 120) {
        clase = 'tiempo abierto: 1 - 2 horas';
    } else if (tiempo_minutos < 240) {
        clase = 'tiempo abierto: 2 - 4 horas';
    } else if (tiempo_minutos < 480) {
        clase = 'tiempo abierto: 4 - 8 horas';
    } else {
        clase = 'más de 8 horas abierto';
    }
}
return clase;
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

El resultado se ve así:

Para validar si el script es válido se puede oprimir el botón “Prueba”:

Una vez validado el script, se puede confirmar el script con oprimir “Aceptar”.

Luego se devuelvo a la parte de configurar la simbología:

Hacer clic en “OPCIONES” para configurar la simbología para la expresión:

El resultado se ve así:

Al esperar un tiempo se puede observar que los símbolos son dinámicos, puesto que el tiempo de estar abierta la solicitud cambie continuamente.

Arcade ofrece una manera sencilla para graficar los datos de una manera dinámico. 

42 Comments
About the Author
Solution Engineer for the Utilities Sector @ Esri Colombia - Ecuador - Panamá sr GIS Advisor / Python - Arcpy developer / GIS analyst / technical project leader / lecturer and GeoNet moderator, focusing on innovations in the field of GIS. Specialties: ArcGIS, Python, ArcGIS Enterprise, ArcGIS Online, Arcade, Configurable Apps, WAB, Mobile Apps, Insights, Spatial Analysis, LiDAR / 3D Laser Scanning / Point Clouds. UNME http://nl.linkedin.com/in/xanderbakker/ http://www.slideshare.net/XanderBakker http://www.scribd.com/xbakker http://twitter.com/#!/XanderBakker