Instrução
ArcGIS Arcade é uma linguagem de expressão que pode ser usada para configurar pop-ups no Portal for ArcGIS Map Viewer. As funções Arcade Date fornecem métodos para criar objetos de data e adquirir várias propriedades dos objetos. Por exemplo, as funções DateAdd() e DateDiff() são usadas para ajustar a data com base em um intervalo especificado, e a função Now() é usada para obter a hora local atual do cliente.
Este artigo fornece as etapas para calcular a diferença entre dois campos de data em pop-up no Portal for ArcGIS Map Viewer. Neste exemplo, o número de dias exibido antes da última inspeção de hidrante no pop-up é obtido referenciando os valores do campo Data de Inspeção (como visto na imagem abaixo) e a hora local atual do cliente.
var <variableName> = Now() var <variableName1> = $feature.<date_fieldName>;
var <variableName2> = Floor(DateDiff(<variableName>, <variableName1>, 'years'));
var <variableName3> = DateAdd(<variableName1>, <variableName2>, 'years');
var <variableName4> = DateDiff(<variableName>, <variableName3>, 'days');
if (IsEmpty($feature.<date_fieldName>)){ return "<textValue>"; } else if (<variableName2> >= <numberValue>) { return "<textValue1> " + <variableName2> + " <textValue2> " + Floor(<variableName4> , <numberValue1>) + " <textValue3>"; } else if (<variableName2> == <numberValue2>) { return "<textValue4> " + Floor(<variableName4> , <numberValue1>) + " <textValue3>"; } else if (<variableName2> == <numberValue1> && <variableName4> >= <numberValue>) { return "<textValue1> " + Floor(<variableName4> , <numberValue1>) + " <textValue3>"; } else if (<variableName2> == <numberValue1> && <variableName4> >= <numberValue2>) { return "<textValue1> " + Floor(<variableName4> , <numberValue1>) + " <textValue5>"; } else if (<variableName2> == <numberValue1> && <variableName4> < <numberValue2>) { return "<textValue6>"; }
O bloco de código a seguir demonstra o script de trabalho do Arcade completo.
var timeNow = Now(); var survey = $feature.DATEINSPECTED; var y = Floor(DateDiff(timeNow, survey, 'years')); var date1a = DateAdd(survey, y, 'years'); var d = DateDiff(timeNow, date1a, 'days'); if (IsEmpty($feature.DATEINSPECTED)){ return "-"; } else if (y >= 2) { return "Last Inspection: " + y + " years and " + Floor(d , 0) + " days ago."; } else if (y == 1) { return "Last Inspection: 1 year and " + Floor(d , 0) + " days ago."; } else if (y == 0 && d >= 2) { return "Last Inspection: " + Floor(d , 0) + " days ago."; } else if (y == 0 && d >= 1) { return "Last Inspection: " + Floor(d , 0) + " day ago."; } else if (y == 0 && d < 1) { return "Last Inspection: today."; }
A imagem abaixo mostra o campo Última Inspeção (dias) recém-adicionado no pop-up usando o ArcGIS Arcade para fornecer uma contagem dos dias ou anos desde que um hidrante foi inspecionado pela última vez.
ID do Artigo: 000028205
Obtenha ajuda de especialistas do ArcGIS
Baixe o Aplicativo de Suporte da Esri