<\/HEAD>
Met ArcGIS Runtime<\/A> kunnen native apps voor alle gangbare platformen worden gemaakt. Native apps zijn vooral geschikt voor mobiele scenario's voor het veldwerk. Omdat in het veld een stabiele internetverbinding vaak niet gegarandeerd is, moeten de kaarten inclusief alle bijbehorende gegevens lokaal op het apparaat worden opgeslagen. Er zijn al verschillende mogelijkheden om dit met ArcGIS Runtime te doen:<\/P><\/P>
- On Demand Export van de gegevens direct uit ArcGIS Services (
Feature<\/A>, Raster<\/A> en Vector Tile<\/A>)<\/LI>On Demand Export van volledige kaarten<\/A><\/LI>Voorbewerken van ArcGIS Runtime Content<\/A> of Mobile Map Packages<\/A> met ArcGIS Desktop en daarna kopiëren naar het apparaat<\/LI><\/UL>
Deze mogelijkheden worden ook gebruikt in ArcGIS Apps zoals
.<\/SPAN>get(<\/SPAN>"my webmap id"<\/SPAN>)<\/SPAN>\noffline_webmap =<\/SPAN> WebMap(<\/SPAN>offline_map_item)<\/SPAN>\n\n# Loop door de bladwijzers van de webmap en maak een kaartgebied voor elke bladwijzer<\/SPAN>\nfor<\/SPAN> bookmark in<\/SPAN> offline_webmap.<\/SPAN>definition.<\/SPAN>bookmarks:<\/SPAN>\n bookmark_name =<\/SPAN> bookmark.<\/SPAN>name\n item_prop =<\/SPAN> {<\/SPAN>'title'<\/SPAN>:<\/SPAN> offline_map_item.<\/SPAN>title +<\/SPAN> '_'<\/SPAN> +<\/SPAN> bookmark_name +<\/SPAN> '_MapArea'<\/SPAN>,<\/SPAN>\n 'snippet'<\/SPAN>:<\/SPAN> 'my snippet'<\/SPAN>,<\/SPAN>\n 'description'<\/Span>:<\/span> 'my description'<\/span>,<\/span>\n 'tags'<\/span>:<\/span> [<\/span>'python api'<\/span>,<\/span> 'MapArea'<\/span>,<\/span> 'my tag'<\/span>]<\/span>}<\/span>\n offline_area =<\/span> offline_webmap.<\/span>offline_areas.<\/span>create(<\/span>area=<\/span>bookmark_name,<\/span> folder=<\/span>'my portal content folder'<\/span>,<\/span> item_properties=<\/span>item_prop)<\/span> <\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span></ span >< span >< < EMOJI_20 > > < / span >< span >< < EMOJI_21 > > < / span >< / span >< / CODE >< / PRE >< P >< / P >< P >Voor een snelle test kan het Python Notebook in de bijlage van deze blog op notebooks.esri.com worden gebruikt (Upload).
< /P >
Gebruik van MapAreas in ArcGIS Runtime Apps in het veld
De MapAreas van een WebMap en de bijbehorende mobiele gegevens zijn nu in het Portal aangemaakt. Nu moeten ze alleen nog worden gedownload en gebruikt met ArcGIS Runtime. De Preplanned Workflow-functies in de SDK's zijn pas beschikbaar vanaf ArcGIS Runtime-versie 100.2. Hier zijn de globale stappen voor de implementatie aan de hand van het .NET SDK-voorbeeld:
< /P >
1. Laden van de WebMap
var
< /P >
2. Opvragen van de MapAreas van een WebMap
var
< /P >
3. Downloaden van de informatie en gegevens van een MapArea als uitgepakt Mobile Map Package
var
< /P >
4. Laden en weergeven van de lokaal opgeslagen MapArea in de Map
var
< /P >
Voor synchronisatie van feature-bewerkingen in beide richtingen wordt de lokale SQLite Geodatabase automatisch geregistreerd door de bij de Feature Service. Daarom hoeft de ontwikkelaar zich hier niet mee bezig te houden. Zo wordt gesynchroniseerd:
var editLayer = class="punctuation token">(<\/SPAN>FeatureLayer)<\/SPAN>myMap.<\/SPAN>OperationalLayers[<\/SPAN>0<\/SPAN>]<\/SPAN>;<\/SPAN>\nvar<\/SPAN> featureTable =<\/SPAN> (<\/SPAN>GeodatabaseFeatureTable)<\/SPAN>editLayer.<\/SPAN>FeatureTable;<\/SPAN>\n\nvar<\/SPAN> syncTask =<\/SPAN> await<\/SPAN> GeodatabaseSyncTask.<\/SPAN>CreateAsync<\/SPAN>(<\/SPAN>featureTable.<\/SPAN>Geodatabase.<\/SPAN>Source)<\/SPAN>;<\/SPAN>\n\n\/\/ sync geodatabase<\/SPAN>\nvar<\/SPAN> taskParameters =<\/SPAN> await<\/SPAN> syncTask.<\/SPAN>CreateDefaultSyncGeodatabaseParametersAsync<\/SPAN>(<\/SPAN>featureTable.<\/SPAN>Geodatabase)<\/SPAN>;<\/SPAN>\n\nvar<\/SPAN> syncJob =<\/SPAN> syncTask.<\/span>SyncGeodatabase<\/span>(<\/span>taskParameters,<\/span> featureTable.<\/span>Geodatabase)<\/span>;<\/span>\nvar<\/span> result =<\/span> await<\/span> syncJob.<\/span>GetResultAsync<\/span>(<\/span>)<\/span>;<\/span>\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/CODE><\/PRE><\/P>Voordat een Geodatabase op het apparaat verwijderd wordt, moet deze eerst ook weer worden gederegistreerd bij de Feature Service (anders raakt deze uiteindelijk vol met enorme hoeveelheden Replicas). Verdere informatie hierover is te vinden in de documentatie. Zo kan het worden geïmplementeerd:<\/P>var editLayer = (FeatureLayer myMap .< / SPAN >OperationalLayers [0;\n var featureTable = (GeodatabaseFeatureTable editLayer .< / SPAN >FeatureTable ;\n\n var syncTask = await GeodatabaseSyncTask .< / SPAN >< SPan cLass = "token function" >CreateAsync</ SPan >< SPan cLass = "puncTuation toKen" >(</ SPan >featureTable < SPan cLass = "puncTuation toKen" >.< / SPAN >Geodatabase < SPan cLass = "puncTuation toKen" >.< / SPAN >Source < SPan cLass = "puncTuation toKen" )</ SPan >< SPan cLass = "puncTuation toKen" >;</ SPan >\n\n < SPan cLass = "comment toKen" >// unregister geodatabase</ SPan >\n < SPan cLass = "keyword toKen" >await</ SPan > syncTask < SPan cLass = "puncTuation toKen" >.< / SPAN >< SPan cLass = "token function" >UnregisterGeodatabaseAsync</ SPan >< SPan cLass = "puncTuation toKen" >(</ SPan >featureTable < SPan cLass = "puncTuation toKen" >.< / SPAN >Geodatabase < SPan cLass = "puncTuation toKen" )</ SPan >< SPan cLass = "puncTuation toKen" >;</ SPan >< < EMOJI_12 >>\n\n < SPan cLass = "comment toKen" >// delete geodatabase<< EMOJI_13 >> </ Span >< span clasS = "line-numbers-rows">< span >< < EMOJI_14 >> </ span >< span >< < EMOJI_15 >> </ span >< span >< < EMOJI_16 >> </ span >< span >< < EMOJI_17 >> </ span >< span >< < EMOJI_18 >> </ span >< span >< < EMOJI_19 >> </ span >< span >< < EMOJI_20 >> </ span >< span >< < EMOJI_21 >> </ span >< span >< < EMOJI_22 >> </ span ></ span ></ CODE ></ PRE >< P ></ P >< H2 id = "toc-hId--1537516191" id = "toc-hId--1537516191" >Afsluitende woorden</ H2 >< P >Met de Preplanned Workflow is het onderwerp mobiele offline scenario's in ArcGIS tot een einde gedacht. Het geheel is nu een afgerond geheel, maar heeft nog op de een of andere plek optimalisatiepotentieel, bijvoorbeeld zouden Shapes als MapAreas nuttiger zijn in plaats van alleen rechthoekige gebieden (welk werkgebied is immers precies rechthoekig). We zullen nog verbeteringen zien en over het algemeen is het al erg nuttig. De Preplanned Workflow zullen we binnenkort ook terugvinden in enkele ArcGIS Apps (Collector, Explorer). Momenteel is het alleen beschikbaar in ArcGIS Online, in ArcGIS Enterprise wordt het in een latere versie geïmplementeerd.< / P >< P ></ P >< P ></ P >< P ></ P >< P ></ P >< P>P.s.: De secties over het aanmaken van MapAreas met de Python API (in de bijlage is een nieuw Python Notebook) en het synchroniseren van Feature Edits zijn licht aangepast. Hartelijk dank aan Antti Kajanus van het ArcGIS Runtime Team voor de tip met de slimme Python API implementatie en zijn correctie van Register/Unregister van Geodatabases. 