Instrução

Calcular a diferença entre dois campos de data em um pop-up usando Arcade no Portal for ArcGIS Map Viewer

Last Published: January 30, 2024

Descriçã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.

O pop-up destacando o campo Data de inspeção para ser referenciado no cálculo do número de dias desde a última inspeção de hidrante

Solução ou Solução Provisória

  1. Abra o mapa no Portal for ArcGIS Map Viewer. Clique em Camadas na barra de ferramentas Conteúdo (escura) e selecione a camada com o pop-up para edição. Neste exemplo, a camada Pintura de Hidrante para Coletor está selecionada.
A barra de ferramentas (escura) Conteúdo do Map Viewer com a guia Camadas
  1. Clique em Pop-ups na barra de ferramentas Configurações (clara) e clique em Opções > Expressões de atributo.
O painel Pop-ups do Map Viewer usado para navegar até o painel de expressões pop-up do Map Viewer
  1. Clique em + Adicionar expressão para abrir a janela do editor de expressão Arcade.
  2. Na janela do editor, especifique um nome para a nova expressão conforme necessário.
  3. Na caixa de diálogo Expressão, insira a expressão Arcade abaixo.
  1. Defina as datas a serem referenciadas.
var <variableName> = Now()
var <variableName1> = $feature.<date_fieldName>;
  1. Calcule a diferença de datas em anos.
var <variableName2> = Floor(DateDiff(<variableName>, <variableName1>, 'years'));
  1. Crie uma nova data adicionando os anos à data inicial.
var <variableName3> = DateAdd(<variableName1>, <variableName2>, 'years');
  1. Calcule o número de dias entre essas datas.
var <variableName4> = DateDiff(<variableName>, <variableName3>, 'days');
  1. Defina as restrições para os valores de campo a serem exibidos no pop-up.
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.";
}
  1. Clique em Testar para visualizar o resultado da expressão. Se o resultado desejado for alcançado, clique em OK.
Especificando a expressão Arcade na janela do editor do Portal for ArcGIS Map Viewer
  1. Clique no botão Anterior acima da expressão Arcade recém-criada no painel Expressões de atributos.
O painel de expressões Pop-up do Portal for ArcGIS Map Viewer com o ícone Anterior acima da expressão recém-criada
  1. Clique em Lista de campos para expandir a lista de campos exibidos nos pop-ups e clique em Selecionar campos.
  2. Verifique o campo de expressão na seção Expressões e clique em Concluir.

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.

O resultado final da visualização de pop-up no Portal for ArcGIS Map Viewer

ID do Artigo: 000028205

Receba notificações e encontre soluções para problemas novos ou comuns

Obtenha respostas resumidas e soluções de vídeo do nosso novo chatbot de IA.

Baixe o Aplicativo de Suporte da Esri

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download