Change status color in mapviewer based on information from two fields using arcade expressions

233
1
04-20-2023 06:04 AM
Labels (3)
GeoprocessamentoNovaLima
New Contributor II
 

Hello everybody. I'm trying to create a MapViewer arcade expression that allows changing the colors of a status, based on a feature layer of points (derived to Survey 123 web). In this feature layer, we have a fiscalization Status field, which presents three types of situations: "Open / Assigned"; 'Notification/ awaiting defense"; "Penalty generated". What I need is for the colors to change according to predetermined dates that we have: For example: In "Open Status / Assigned" the initial color becomes orange. After ten days without changing the status, the color changes to red. Is it possible to do this in Mapviewer using arcade? If possible, how can I construct an expression like this?

 
 
 

 

0 Kudos
1 Reply
GeoprocessamentoNovaLima
New Contributor II
Hello. I managed to do what I needed. I'll post the result here, in case anyone needs it, for reference in the future. I believe there must be an easier way to do it, but due to my little arcade experience, this was the way I got it. Thank you and good work everyone.
 
 
var atrasoatrib
var atrasonotif
var atrasonotifar
var atrasomulta1
var atrasomulta2
var status = $feature.status_da_demanda
atrasoatrib= (DateDiff(Today(), $feature["prazo_para_atendimento_da_den_n"], 'days'))
atrasonotif= (DateDiff($feature["prazo_para_cumprimento_da_notif"], $feature["data_da_notifica_o_embargo_no_l"], 'days'))
atrasonotifar= (DateDiff($feature["data_do_recebimento_da_ar"], $feature["prazo_cumpri_notif"], 'days'))
atrasomulta1= (DateDiff(Today(), $feature["prazo_para_pagamento_da_multa_1"], 'days'))
atrasomulta2= (DateDiff(Today(), $feature["prazo_para_pagamento_da_multa_2"], 'days'))

if (atrasoatrib>1 && status=="EM ABERTO / ATRIBUÍDA")
{
   return status + " - Atendimento da Demanda em ATRASO"
}
else
if (atrasoatrib<=1 && status=="EM ABERTO / ATRIBUÍDA")
{
   return status + " - Atendimento da Demanda DENTRO DO PRAZO"
}
if (atrasonotif>1 && status=="NOTIFICAÇÃO / AGUARDANDO DEFESA")
{
   return status + " - Cumprimento da Notificação em ATRASO"
}
else
if (atrasonotif<=1 && status=="NOTIFICAÇÃO / AGUARDANDO DEFESA")
{
   return status + " - Cumprimento da Notificação DENTRO DO PRAZO"
}
if (atrasonotifar<1 && status=="NOTIFICAÇÃO / AGUARDANDO DEFESA")
{
   return status + " - Cumprimento da Notificação em ATRASO"
}
else
if (atrasonotifar>=1 && status=="NOTIFICAÇÃO / AGUARDANDO DEFESA")
{
   return status + " - Cumprimento da Notificação DENTRO DO PRAZO"
}



if (atrasomulta1>1 && atrasomulta2<=1 && status=="PENALIDADE GERADA")
{
   return status + " - Não pagou a primeira multa"
}
else
if (atrasomulta1<=1 && status=="PENALIDADE GERADA")
{
   return status + " - No prazo para o pagamento da primeira multa"
}
if (atrasomulta2>1 && atrasomulta1>1 && status=="PENALIDADE GERADA")
{
   return status + " - Não pagou a primeira e segunda multa"
}
else
if (atrasomulta2<=1 && status=="PENALIDADE GERADA")
{
   return status + " - No prazo para o pagamento da segunda multa"
}
if (status == "FINALIZADA")
{
   return status
}
0 Kudos