A Premissa
Embora as camadas do ArcGIS Tracker ('Tracks' & 'Last Known Location') possam ser usadas para transmitir dados de localização ao vivo para o nosso portal web, esses dados são protegidos por configurações adicionais de segurança que impedem que sejam compartilhados publicamente. Compreensivelmente, isso é intencional para proteger a privacidade pessoal e evitar que nossa localização seja compartilhada acidentalmente com as pessoas erradas.
No entanto, existe outro método pelo qual podemos configurar uma transmissão de localização quase ao vivo para fins de rastreamento público... Considere os seguintes propósitos para um aplicativo web público:
- Rastreamento de um desfile ao longo de uma rota local na rua
- Localização de um ônibus escolar em sua rota circular
- Reconstituir seus próprios passos no campo
Estes são propósitos relativamente simples e de baixo armazenamento (consumo de créditos) para os quais podemos usar a suíte ArcGIS Online para resolver.
O fluxo de trabalho neste post do blog combinará os seguintes produtos ArcGIS para configurar um aplicativo web público para transmissão e rastreamento de localização quase ao vivo:
- ArcGIS Online
- ArcGIS QuickCapture (Field Apps Bundle)
- ArcGIS Web AppBuilder
- ArcGIS Pro (se necessário, veja "Considerações Importantes" abaixo)
Aviso Legal:
O ArcGIS QuickCapture será mais adequado para transmitir recursos dessa magnitude a partir de um único dispositivo. Tentar aplicar este método a múltiplos usuários (por exemplo, uma frota de carros) dentro de um único projeto provavelmente causará problemas de desempenho e uma experiência cada vez menos "ao vivo".
O Fluxo de Trabalho
Neste exemplo, vamos rastrear um caminhão teórico de sorvete, enquanto ele percorre um bairro.
No ArcGIS Online, queremos criar uma camada de feição pontual - eu nomeei a minha "Icecream Truck".
Em seguida, acesse o QuickCapture Designer pelo menu Atalho do App no ArcGIS Online, ou usando a URL: https://www.arcgis.com/apps/quickcapture/
Criar um novo projeto QuickCapture é fácil:
- Clique em "New Project"
- Escolha "Start from existing layers" e selecione sua camada de feição pontual
- Clique em "Next" e depois em "Create" seu projeto
- Por favor, veja "Get started with ArcGIS QuickCapture" e "Configure a Project" para mais informações sobre os recursos de design dos projetos ArcGIS QuickCapture
- Selecione o botão para sua camada de feição pontual, vá até a aba "Data" e certifique-se que "Streaming points" está selecionado:

- Você também pode querer ir em Settings > General > e ativar/desativar precisão requerida, assim como definir um "Distance Threshold" entre pontos capturados.
- Então clique em "Save" seu projeto
- Agora, nós (ou o trabalhador de campo) precisaremos baixar e instalar o aplicativo móvel ArcGIS QuickCapture em nosso dispositivo móvel > fazer login > selecionar o símbolo '+' > Browse Projects > Baixar o projeto QuickCapture
- Depois, vá em QuickCapture Settings > Autosend > ative "On" > e selecione Interval = 'Immediately'
Esta última etapa garantirá que os pontos transmitidos sejam sincronizados com a camada de feição no ArcGIS Online assim que forem capturados.
Agora, de volta ao ArcGIS Online...
- Acesse Content, então encontre e selecione sua camada de feição pontual
- Escolha "Create View Layer"
- Dê um Nome, Resumo e Tags à nova camada de visualização
- Então escolha "Open in Map Viewer"
- No seu mapa web, abra o menu suspenso da Camada de Visualização > Set View Definition > Define Features

- Pode-se então usar o atributo 'Fix Time' (criado pelo QuickCapture) para definir uma expressão que exiba apenas os pontos transmitidos nos últimos x minutos, como:
Fix Time - Nos últimos - 5 - minutos

- Além disso, queremos definir nosso 'Refresh Interval' nesta camada para o menor possível (a cada 30 segundos) para que o mapa web esteja atualizado o máximo possível para nosso público do aplicativo web...

- Abra novamente o menu suspenso da camada de visualização e escolha "Save Layer"
Salve o mapa web e dê um Nome, Tags e Resumo...
Agora, vamos adicionar o novo mapa web a uma Aplicação Web...
- Acesse Content > Create > Web AppBuilder
- Escolha '2D' > Dê um Nome, Tags e Resumo à Aplicação Web > Clique em "Create"
- Escolha um tema
- Adicione seu mapa web
- Adicione widgets que possam ser interessantes:
- Bookmarks (do mapa web)
- Filter (você pode querer fornecer ao usuário a capacidade de filtrar ainda mais pelo atributo 'Fix Time')
- Salve a Aplicação Web
- No ArcGIS Online > Content > defina o compartilhamento como "Everyone (Public)" para os seguintes conteúdos:
- Feature Layer View
- Mappa Web
- Aplicação Web
Agora nós (ou o trabalhador de campo) podemos começar a transmitir sua localização pelo ArcGIS QuickCapture, e seus movimentos podem ser observados atualizando a cada 30 segundos na aplicação web, com sua localização dos últimos 5 minutos atrás deles!
Exemplo:
Exemplo de saída: Pontos coletados no QuickCapture com um Limite de Distância de 10m e aplicativo público Web AppBuilder com widget Filtro 'nos últimos 0.5 minutos' ativado, para um carro dirigindo por um bairro local
Considerações Adicionais
Filtros da Camada de Visualização: As feições desaparecerão do mapa após o limite temporal da nossa camada de visualização expirar. Para contornar isso, poderíamos aplicar um filtro "mais recente" ao JSON do serviço de feição seguindo o fluxo descrito aqui: https://community.esri.com/t5/arcgis-online-documents/display-latest-feature-in-a-feature-service/ta-p/904523
E usando a seguinte sintaxe como guia, podemos retornar os 5 pontos mais recentes por nome de usuário:
{
"viewLayerDefinition": {
"topFilter": {
"orderByFields": "OBJECTID ASC",
"groupByFields": "Creator",
"topCount": 5
}
}
}
Preocupações com Armazenamento: Transmitir e armazenar feições em massa usando ArcGIS QuickCapture terá impacto crescente no consumo de créditos do ArcGIS Online ao longo do tempo. Precisamos lembrar de excluir em lote as feições pontuais coletadas assim que não forem mais relevantes para nosso propósito. Isso pode ser feito facilmente no ArcGIS Pro seguindo os passos abaixo:
- Abrir o ArcGIS Pro, conectar-se ao ArcGIS Online como seu 'Active Portal' e fazer login.
- Acessar o painel 'Catalog', na aba 'Portal', encontrar sua camada streaming feature layer.
- Adicionar esta camada ao mapa, clicar com o botão direito nela no painel 'Contents' e abrir sua tabela de atributos.
- Crtl + A selecionará todas as feições.
- Então clique no botão 'Delete' para removê-las.
