De Premisse
Hoewel ArcGIS Tracker-lagen ('Tracks' & 'Last Known Location') kunnen worden gebruikt om locatiegegevens live te streamen naar ons webportaal, worden deze gegevens beschermd door extra beveiligingsinstellingen die voorkomen dat ze openbaar worden gedeeld. Dit is begrijpelijkerwijs opzettelijk ontworpen om de persoonlijke privacy te beschermen en te voorkomen dat onze locatie per ongeluk met de verkeerde mensen wordt gedeeld.
Er is echter een andere methode waarmee we een bijna-live locatie-stream kunnen configureren voor openbare trackingdoeleinden... Overweeg de volgende doeleinden van een openbare webapp:
- Het volgen van een parade langs een lokale straatroute
- Het lokaliseren van een schoolbus op zijn ringroute
- Het opnieuw traceren van je eigen stappen in het veld
Dit zijn vrij eenvoudige en opslagarme (kredietverbruik) doeleinden waarvoor we de ArcGIS Online-suite kunnen gebruiken om een oplossing te bieden.
De workflow in deze blogpost combineert de volgende ArcGIS-producten om een openbare webapp te configureren voor bijna-live locatie-streaming en tracking:
- ArcGIS Online
- ArcGIS QuickCapture (Field Apps Bundle)
- ArcGIS Web AppBuilder
- ArcGIS Pro (indien nodig, zie "Belangrijke Overwegingen" hieronder)
Disclaimer:
ArcGIS QuickCapture is het meest geschikt voor het streamen van functies van deze omvang vanaf één apparaat. Het toepassen van deze methode op meerdere gebruikers (bijv. een wagenpark) binnen één project zal waarschijnlijk prestatieproblemen veroorzaken en een steeds minder "live" ervaring opleveren.
De Workflow
In dit voorbeeld gaan we een theoretische ijscowagen volgen terwijl deze door een buurt rijdt.
In ArcGIS Online willen we een puntfeaturelaag maken - ik heb de mijne "Icecream Truck" genoemd.
Ga vervolgens naar de QuickCapture Designer via het App Shortcut-menu in ArcGIS Online, of gebruik de URL: https://www.arcgis.com/apps/quickcapture/
Een nieuw QuickCapture-project maken is eenvoudig:
- Klik op "New Project"
- Kies "Start from existing layers" en selecteer je puntfeaturelaag
- Klik op "Next" en "Create" je project
- Zie "Get started with ArcGIS QuickCapture" en "Configure a Project" voor meer informatie over de ontwerpfuncties van ArcGIS QuickCapture-projecten
- Selecteer de knop voor je puntfeaturelaag, ga naar het tabblad "Data" en zorg ervoor dat "Streaming points" is geselecteerd:

- Je wilt misschien ook naar Instellingen > Algemeen > gaan en vereiste nauwkeurigheid in-/uitschakelen, evenals een "Distance Threshold" instellen tussen vastgelegde punten.
- Klik vervolgens op "Save" om je project op te slaan
- Nu moeten wij (of de veldwerker) de ArcGIS QuickCapture mobiele app downloaden en installeren op ons mobiele apparaat > inloggen > selecteer het '+' symbool > Browse Projects > Download het QuickCapture-project
- Ga dan naar QuickCapture Instellingen > Autosend > zet aan "On" > en selecteer Interval = 'Immediately'
Deze laatste stap zorgt ervoor dat gestreamde puntfeatures zo snel mogelijk na vastlegging worden gesynchroniseerd met de featurelaag in ArcGIS Online.
Nu, terug in ArcGIS Online...
- Ga naar Content, zoek en selecteer je puntfeaturelaag
- Kies om een "View Layer" te maken
- Geef de nieuwe viewlaag een Naam, Samenvatting en Tags
- Kies vervolgens om te openen in Map Viewer
- Open in je webmap het dropdownmenu voor de View Layer > Set View Definition > Define Features

- We kunnen dan het attribuut 'Fix Time' (gemaakt door QuickCapture) gebruiken om een expressie in te stellen die alleen de punten toont die in de afgelopen x tijdsduur zijn gestreamd, zoals:
Fix Time - In the last - 5 - minutes

- Bovendien willen we ons 'Refresh Interval' op deze laag instellen op het laagst mogelijke (elke 30 seconden) zodat de webmap zo vaak mogelijk up-to-date is voor ons webapp-publiek...

- Open opnieuw het dropdownmenu voor de viewlaag en kies "Save Layer"
Sla de webmap op en geef deze een Naam, Tags en Samenvatting...
Laten we nu de nieuwe webmap toevoegen aan een Web Application...
- Ga naar Content > Create > Web AppBuilder
- Kies '2D' > Geef de Web App een Naam, Tags en Samenvatting > Klik op "Create"
- Kies een thema
- Voeg je webmap toe
- Voeg widgets toe die interessant kunnen zijn:
- Bookmarks (vanuit webmap)
- Filter (je wilt misschien gebruikers de mogelijkheid geven om nog verder te filteren op het attribuut 'Fix Time')
- Sla de Web Application op
- In ArcGIS Online > Content > stel delen in op "Everyone (Public)" voor de volgende inhoud:
- Feature Layer View
- Web Map
- Web Application
Nu kunnen wij (of de veldwerker) beginnen met het streamen van hun locatie vanuit ArcGIS QuickCapture, en hun bewegingen kunnen elke 30 seconden worden bijgewerkt in de webapplicatie, met hun locatie van de afgelopen 5 minuten als spoor achter hen!
Voorbeeld:
Voorbeeldoutput: Punten verzameld in QuickCapture met een afstandsdrempel van 10 m en openbare Web AppBuilder-app met ingeschakelde filterwidget 'in the last 0.5 minutes', voor een auto die door een lokale buurt rijdt
Aanvullende Overwegingen
Filters voor View Layer: Features verdwijnen van de kaart nadat onze tijdsdrempel van de viewlaag is verstreken. Om dit te omzeilen kunnen we een "meest recente" filter toepassen op de JSON van de feature service door de workflow hier beschreven te volgen: https://community.esri.com/t5/arcgis-online-documents/display-latest-feature-in-a-feature-service/ta-p/904523
En met behulp van onderstaande syntaxis als leidraad kunnen we per gebruikersnaam de meest recente 5 punten retourneren:
{
"viewLayerDefinition": {
"topFilter": {
"orderByFields": "OBJECTID ASC",
"groupByFields": "Creator",
"topCount": 5
}
}
}
Opslagzorgen: Streaming en bulkopslag van features met ArcGIS QuickCapture zal na verloop van tijd toenemende impact hebben op het kredietverbruik van ArcGIS Online. We moeten onthouden om verzamelde puntfeatures batchgewijs te verwijderen zodra ze niet langer relevant zijn voor ons doel. Dit kan eenvoudig worden gedaan in ArcGIS Pro door het volgende te doen:
- Open ArcGIS Pro, maak verbinding met ArcGIS Online als je 'Active Portal' en log in.
- Ga naar het 'Catalog'-paneel, en zoek onder het tabblad 'Portal' je streaming featurelaag.
- Voeg deze laag toe aan de kaart, klik er met rechts op in het 'Contents'-paneel en open de attributentabel.
- Ctrl + A selecteert alle features.
- Klik vervolgens op de knop 'Delete' om ze te verwijderen.
