Skip navigation
All Places > GeoDev Germany > Blog > Author: a.erbeesri-de-esridist

Seit Mitte Oktober 2018 steht das neue ArcGIS Runtime Major Release Version 100.4 zur Verfügung. ArcGIS Runtime ist eine Familie aus mehreren SDKs zum Entwickeln nativer Geo-Apps für alle relevanten Plattformen. Neben den üblichen Bug-Fixes und Performance Verbesserungen beinhaltet es folgende Highlights:

 

  • Viele Verbesserungen für das Handling von Offline Maps
  • Unterstützung des MrSID Raster Formats
  • KML kann nun in 2D Maps und 3D Scenes genutzt werden und es werden mehr KML 2.2 Features unterstützt
  • Plattformspezifische Änderungen

 

KML Placemarks in einer 3D WebScene

 

Ausführliche Informationen zu allen Neuerungen in ArcGIS Runtime 100.4 findet Ihr in diesem News Blog von Esri Inc. und in den Release Notes, jeweils unter Guide -> Reference der verschiedenen SDKs auf dem ArcGIS for Developers Portal.

Mit Web AppBuilder for ArcGIS können Anwender ohne Programmierkenntnisse fokussierte 2D und 3D Web-Apps mithilfe von vielen konfigurierbaren, ready-to-use Widgets und Designs erstellen. Sollte die Funktionalität nicht ausreichen, können Entwickler mit der Developer Edition bestehende Widgets und Designs erweitern oder vollständig eigene erstellen.

 

Neue CoordinateControl class für das Parsen von Koordinaten

 

Die neue Version 2.10 hat nun den gleichen funktionalen Stand wie der eingebettete Web AppBuilder in ArcGIS  vom September 2018 Update. Neu ist ein Pocket Design für Web-Apps, das optimiert ist für das Einbetten in andere Apps, z.B. in StoryMaps. Neben dem wurden über 10 bestehende Widgets verbessert und/oder funktional erweitert. Das SDK wurde ebenfalls funktional erweitert und die Dokumentation wurde verbessert.

 

Vollständige Auflistung der Neuigkeiten stehen im Esri Blog oder im What's New auf dem ArcGIS Developer Portal.

AppStudio for ArcGIS ist eine innovative Anwendung zur Erstellung mobiler Karten-Apps für Android, iOS, Mac, Linux und Windows. Apps werden einmal erstellt und sind dann plattformübergreifend und auf jedem Gerät sofort verwendbar. Mit der Standard-Version lassen sich die mit den konfigurierbaren Esri Vorlagen erstellten Apps weiter ausbauen. Entwickler-Werkzeuge und Codebeispiele ermöglichen die effiziente Erstellung benutzerdefinierter Apps, powered by ArcGIS Runtime. Fertige Apps können innerhalb des Unternehmens oder in öffentlichen App-Stores bereitgestellt werden. Nun ist die Version 3.1 verfügbar:

 

Einige Highlights sind:

  • Verbesserungen der UI des AppStudio Desktop
  • Änderungen/Verbesserungen der Esri Templates
  • ArcGIS Runtime wurde zur Version 100.3 hochgezogen
  • Qt Framework wurde zur Version 5.11.1 hochgezogen
  • AppStudio Player hat ein grüßeres UI- und UX-Update erhalten
  • Einige Bugfixes

 

AppStudio Desktop Settings Tool Dialog

 

Ausführliche Informationen zu den Neuerungen von AppStudio for ArcGIS Version 3.1 findet Ihr in diesem News Blog von Esri Inc., im Whats New der Hilfeseiten und in der AppStudio GeoNet Gruppe.

Mit Web AppBuilder for ArcGIS können fokussierte 2D und 3D Web-Apps mithilfe von vielen konfigurierbaren, ready-to-use Widgets und Designs erstellt werden. Mit der Developer Edition des Web AppBuilders ist es möglich, bestehenden Widgets und Designs zu erweitern oder auch vollständig eigene zu erstellen.

 

Swipe Widget

Swipe Widget

 

Die neue Version 2.9 hat nun den gleichen funktionalen Stand wie der eingebettete Web AppBuilder in ArcGIS  vom Juni 2018 Update. Es wurden gut 15 Widgets erweitert, z.B.:

 

  • Messen von Flächen in 3D-Scenes
  • Feinere Filteroptionen
  • Vergleichen unterschiedlicher Layer mit dem Swipe Widget
  • Editieren von Features mit n:m Beziehung
  • Cost Analysis Widget ist nicht mehr in Beta
  • Uvm.

 

Vollständige Infos dazu stehen im Esri Inc. Blog oder im What's New auf dem ArcGIS Developer Portal.

Seit Anfang Juli 2018 steht das neue ArcGIS Runtime Major Release Version 100.3 zur Verfügung. ArcGIS Runtime ist eine Familie aus mehreren SDKs zum Entwickeln nativer Geo-Apps für alle relevanten Plattformen. Das Update ist beschrieben als Phase 1 der vollständigen, echten Unterstützung von 3D Web GIS durch alle APIs hinweg. Neben Bugfixes, Performanceverbesserungen und plattformspezifischen Änderungen (z.B. Nutzen des .NET Standard 2.0 im .NET SDK) gibt es neue und erweiterte Funktionalität. Hier eine Auswahl:

 

Unterstützung von 3D Web Scenes


In ArcGIS ist eine Web Map die Beschreibung einer vollständig konfigurierten 2D Karte. Web Scenes dagegen ist das Äquivalent für Karten in 3D. Diese können nun in ArcGIS Runtime werden. 3D Objekte in Scenes können identifiziert und selektiert, und deren Darstellung durch Ändern des Renderers der Scene angepasst werden.


Des Weiteren wird nun das interaktive Messen in 3d Scenes unterstützt und die Sichtbarkeitsanalyse (Viewshed) wurde verbessert (nun 360 Grad).

 

3D Web Scene

 

 

Weiter Highlights:

 

  • WMS Support wurde erweitert, so können z.B. nun Inhalte nach Zeit gefiltert und die Darstellung der Layer durch verfügbare Styles geändert werden.
  • Labeling wurde verbessert
  • Für militärische Symbole wurde die App-6(B) und App-6(D) Spezifikation hinzugefügt
  • Viele neue Samples für alle SDKs
  • uvm.

 

Ausführliche Informationen zu allen Neuerungen in ArcGIS Runtime 100.2.1 findet Ihr in diesem News Blog von Esri Inc. und in den Release Notes der verschiedenen SDKs auf dem ArcGIS for Developers Portal.

Web AppBuilder for ArcGIS ist eine Anwendung zum Erstellen fokussierter 2D und 3D Web-Apps mithilfe von intuitiven Widgets und hübschen Designs. Mit der Developer Edition können Entwickler die bestehenden Widgets und Designs anpassen und erweitern oder auch vollständig eigene erstellen.

 

Messen in 3D

 

Die neue Version 2.8 der Web AppBuilder for ArcGIS Developer Edition hat nun den gleichen funktionalen Stand wie der eingebettete Web AppBuilder in ArcGIS Online vom April 2018 Release. So sind viele bestehende Widgets aktualisiert wurden und auch einige neue Widgets hinzugekommen, z.B. Messen in 3D. Weiterhin wurde an der Usability der Konfigurationsoberfläche des Builder selbst einiges verbessert und die Doku angepasst.

 

Vollständige Infos dazu stehen im What's New auf dem ArcGIS Developer Portal.

Mit AppStudio for ArcGIS können mithilfe von Templates native Apps für alle gängigen Plattformen erstellt werden. Die Power von ArcGIS Runtime wird dafür voll genutzt. Nun ist eine neue Version mit einigen Neuerungen verfügbar:

 

Highlights sind:

 

  • Unterstützung hochgenauer GPS/GNSS Empfänger
  • Änderungen/Verbesserungen der Esri Templates (z.B. kann die Map Tour komplett offline genommen werden)
  • ArcGIS Runtime wurde auf Version 100.2.1 hochgezogen
  • AppStudio Player wurde verbessert
  • mehr..

 

 

Ausführliche Informationen zu den Neuerungen von AppStudio for ArcGIS Version 3 findet Ihr in diesem News Blog von Esri Inc. und in der AppStudio GeoNet Gruppe.

Es geht Schlag auf Schlag. Erst Anfang März wurde die ArcGIS API for Python 1.4 released, nun gibt es schon wieder ein neues Update. Und das ist nicht klein. Neben Bugfixing wurden viele neue Funktionen hinzugefügt und bestehende verbessert.

 

Python Notebook

Python Notebook

 

Hier einige Highlights:

 

Workflows

 

Datenmanagement

  • Verbesserung des Attachment Managers (Filtern von Attachments, kann mit großen Dateien umgehen)
  • clone_items() Funktion wurde überarbeitet und ist jetzt performanter
  • GroupManager wurde um neue Funktionen erweitert

 

Analsyen

 

Verwaltung von AGOL und ArcGIS Enterprise

  • Funktionen zur Überwachung von Anmeldungen/Anmeldeinformationen

 

Samples

  • Python Samples wurden aktualisiert und es wurden neue hinzugefügt

 

 

Ausführliche Informationen zu allen Neuerungen der ArcGIS API for Python 1.4.1 findet Ihr in diesem News Blog von Esri Inc. und in den Release Notes auf dem ArcGIS Developer Portal.

Mit ArcGIS Runtime können native Apps für alle gängigen Plattformen erstellt werden. Native Apps sind besonders geeignet für mobile Szenarien für den Außendienst. Da im Feld eine stabile Internetverbindung oftmals nicht garantiert ist, sollten die Maps inklusive aller zugehörigen Daten lokal auf dem Gerät gespeichert sein. Es gibt bisher schon mehrere Möglichkeiten, dies mit ArcGIS Runtime zu tun:

 


Diese Möglichkeiten werden auch in ArcGIS Apps wie Collector, Navigator oder Explorer genutzt. Seit der ArcGIS Runtime Version 100.2 gibt es nun zusätzlich noch den Preplanned Workflow für die durchgängige und automatisierbare Planung von mobilen offline Szenarien.

 

Der Preplanned Workflow


In einem üblichen Außendienstszenario haben mehrere Außendienstmitarbeiter den gleichen Auftrag, aber in verschiedenen Arbeitsgebieten. Ein Beispiel ist die Inspektion von Straßen in einer Stadt, in der verschiedene Mitarbeiter in unterschiedlichen Stadtgebieten unterwegs sind. Ein Mitarbeiter benötigt in der Regel nur die mobilen Daten von seinem Gebiet und nicht die Daten der kompletten Map. Oftmals darf er auch nur die Daten seines eigenen Gebietes sehen.

 

 

Der Preplanned Workflow ist genau für solche Szenarien konzipiert. Er besteht im Wesentlichen aus zwei Teilen – die Planung von Arbeitsgebieten im Büro und die Nutzung der „Teil-Maps“ in ArcGIS Runtime Apps im Außendienst.

 

 

Planung von Arbeitsgebieten im Büro

Voraussetzung ist eine offlinefähige WebMap. Von dieser WebMap wird die Portal Item ID benötigt (die Zeichenfolge in der URL).

 


Dann werden die relevanten Arbeitsgebiete (MapAreas) in der WebMap definiert. Der einfachste Weg ist Bookmarks zu erstellen. Es können aber auch Extents der Gebiete ermittelt und im JSON Format genutzt werden, z.B. so:

 

{
  "xmin": -13184700,
  "ymin": 3988556,
  "xmax": -13004945,
  "ymax": 4061479,
  "spatialReference": {
       "wkid": 102100
}}

 

Mithilfe des neuen Offline Packaging Geoprocessing Service für den Preplanned Workflow können dann folgende Tasks erledigt werden:

 


Für eine WebMap können bis zu 16 MapAreas erstellt werden. Die mobilen Daten der jeweiligen MapAreas werden direkt im offline nutzbaren Format im Portal gespeichert:

 

  • Features als SQLite Datenbank
  • Vector Tile Layer als Vector Tile Packages (.vtpk)
  • Rasterdaten als Tile Packages (.tpk)

 

Die mobilen Daten haben eine Referenz zu der zugehörigen MapArea. Und alle MapAreas haben eine Referenz zu der zugehörigen WebMap. Das bedeutet: wird eine MapArea gelöscht, werden auch die zugehörigen mobilen Daten im Portal gelöscht. Und wird die WebMap gelöscht, sind alle MapAreas plus mobile Daten auch weg.

MapAreas und zugehörige mobile Daten werden nicht in der Standard-Oberfläche des Portals angezeigt. Im Catalog in ArcGIS Pro können diese Items angezeigt oder gelöscht werden. Eine weitere Möglichkeit ist mit dem AGOL Assistant.

 

Wie wird es in der Praxis umgesetzt?

Geoprocessing Services können in Web Apps mit der ArcGIS API for JavaScript und in nativen Apps mit ArcGIS Runtime genutzt werden. Mit beiden wäre es z.B. möglich, Konfigurator-Apps für Planer im Büro zu erstellen. Eine weitere Option ist die Nutzung des Offline Packaging Geoprocessing Service direkt in ArcGIS Desktop. Mein persönlicher Favorit ist allerdings die Implementierung mit der ArcGIS API for Python und dem OfflineMapAreaManager. Mit diesen paar Zeilen Python Code werden MapAreas von allen Bookmarks einer WebMap erzeugt und auch gleich die zugehörigen mobilen Daten generiert:

 

# Import modules
from arcgis.gis import GIS
from arcgis.mapping import WebMap
from getpass import getpass

# Setup the organization and user information
password=getpass()
gis = GIS('https://www.arcgis.com', 'my named user', password)

# get the webmap from the portal item id
offline_map_item = gis.content.get("my webmap id")
offline_webmap = WebMap(offline_map_item)

# Loop through the webmap's bookmarks and create a map area for each one bookmark
for bookmark in offline_webmap.definition.bookmarks:
    bookmark_name = bookmark.name
    item_prop = {'title': offline_map_item.title + '_' + bookmark_name + '_MapArea',
            'snippet': 'my snippet',
            'description': 'my description',
            'tags': ['python api', 'MapArea', 'my tag']}
    offline_area = offline_webmap.offline_areas.create(area=bookmark_name, folder='my portal content folder', item_properties=item_prop)  

 

Für einen schnellen Test kann das Python Notebook im Anhang dieses Blogs auf notebooks.esri.com genutzt werden (Upload).

 

Nutzen von MapAreas in ArcGIS Runtime Apps im Außendienst

Die MapAreas einer WebMap und die zugehörigen mobilen Daten sind nun im Portal erstellt worden. Jetzt müssen sie nur noch mit ArcGIS Runtime heruntergeladen und genutzt werden. Die Preplanned Workflow Funktionen in den SDKs sind erst ab ArcGIS Runtime Version 100.2 verfügbar. Hier sind die groben Schritte für die Implementierung am Beispiel des .NET SDKs:

 

1. Laden der WebMap

var portal = await ArcGISPortal.CreateAsync();
var webmapItem = await PortalItem.CreateAsync(portal, "WebMap Portal ID");
var myMap = new Map(webmapItem);

 

2. Abfragen der MapAreas einer WebMap

var offlineMapTask = await OfflineMapTask.CreateAsync(myMap);
var preplannedMapAreas = await offlineMapTask.GetPreplannedMapAreasAsync();

 

3. Download der Infos und Daten einer MapArea als exploded Mobile Map Package

var myArea = preplannedMapAreas.FirstOrDefault();

var downloadJob = offlineMapTask.DownloadPreplannedOfflineMap(myArea, "Speicherpfad");
var results = await downloadJob.GetResultAsync();

 

4. Laden und Anzeigen der lokal gespeicherten MapArea in der Map

var offlineMapArea = await MobileMapPackage.OpenAsync("Speicherpfad");
myMap = offlineMapArea.Maps[0];

 

Synchronisierung von Edits mit dem Feature Service

Für die Synchronisierung von Feature Edits in beide Richtungen wird die lokale SQLite Geodatabase automatisch durch den OfflineMapTask beim Feature Service  registriert. Darum muss sich der Entwickler nicht kümmern. So wird synchronisiert:

 

var editLayer = (FeatureLayer)myMap.OperationalLayers[0];
var featureTable = (GeodatabaseFeatureTable)editLayer.FeatureTable;

var syncTask = await GeodatabaseSyncTask.CreateAsync(featureTable.Geodatabase.Source);

// sync geodatabase
var taskParameters = await syncTask.CreateDefaultSyncGeodatabaseParametersAsync(featureTable.Geodatabase);

var syncJob = syncTask.SyncGeodatabase(taskParameters, featureTable.Geodatabase);
var result = await syncJob.GetResultAsync();

 

Bevor eine Geodatabase auf dem Gerät gelöscht werden soll, muss sie vorher beim Feature Service auch wieder deregistriert werden (sonst wird er irgendwann mit Unmengen Replicas zugemüllt). Weiterführende Informationen dazu stehen in der Dokumentation. So kann es umgesetzt werden:

var editLayer = (FeatureLayer)myMap.OperationalLayers[0];
var featureTable = (GeodatabaseFeatureTable)editLayer.FeatureTable;

var syncTask = await GeodatabaseSyncTask.CreateAsync(featureTable.Geodatabase.Source);

// unregister geodatabase
await syncTask.UnregisterGeodatabaseAsync(featureTable.Geodatabase);

// delete geodatabase

 

Abschließende Worte

Mit dem Preplanned Workflow wurde das Thema mobile offline Szenarien in ArcGIS zu Ende gedacht. Das Ganze ist jetzt eine runde Sache, hat aber noch an der einen oder anderen Stelle Optimierungspotential, z.B. wären Shapes als MapAreas nützlicher statt nur rechteckiger Flächen (welches Arbeitsgebiet ist schon exakt rechteckig). Wir werden noch Verbesserungen sehen und insgesamt ist er schon sehr hilfreich. Den Preplanned Workflow werden wir demnächst auch in einigen ArcGIS Apps (Collector, Explorer) wiederfinden. Momentan ist er nur in ArcGIS Online verfügbar, in ArcGIS Enterprise wird er in einer späteren Version implementiert.

 

 

 

P.s.: Die Abschnitte zum Erzeugen von MapAreas mit der Python API (Im Anhang ist ein neues Python Notebook) und Synchronisieren von Feature Edits wurden leicht überarbeitet. Vielen Dank an Antti Kajanus vom ArcGIS Runtime Team für den Tipp mit der smarten Python API  Implementierung und seine Korrektur von Register/Unregister von Geodatenbanken. 

Die ArcGIS API for Python ermöglicht die Erstellung von Skripts und die Automatisierung von Tasks in ArcGIS unter Verwendung einer Pythonic-Bibliothek. Dank der Python-API können Big-Data-Analysen, die Content-Verwaltung und die Web-GIS-Verwaltung optimiert werden. Die API lässt sich außerdem mit Jupyter Notebook und dem SciPy-Stack integrieren, so dass Akademiker, Data Scientists und GIS-Analysten Programme gemeinsam nutzen und reproduzierbare Erkenntnisse teilen können.

 

   

 

 

Mit der Version 1.4 kommen neben diversen Bufixes viele coole Neuerungen. Hier ein Auszug:

 

  • ArcGIS API for Python kann nun auch optional durch PyPI als pip Package installiert werden
  • Spatial Data Frame wurde stark erweitert , z.B. können nun viele 3rd Party Geodatenformate direkt genutzt werden
  • Es wurde eine breitere Palette an Symbologie-Optionen für das Map-Widget im Jupyter Notebook hinzugefügt
  • u.v.m.

 

Ausführliche Informationen zu allen Neuerungen der ArcGIS API for Python 1.4 findet Ihr in diesem News Blog von Esri Inc. und auf ArcGIS for Developers.

Dezember 2017 wurde das Major Release ArcGIS Runtime 100.2 veröffentlicht. Die nun veröffentlichte Version 100.2.1 ist ein darauf aufbauendes fokussiertes Release, in dem einige kritische Bugs gefixt und kleinere Verbesserungen an bestehenden Funktionen vorgenommen wurden. So zum Beispiel:

 

  • Verbesserungen mit WMS Services
  • Mobile Map Packages, erzeugt mit ArcGIS Pro 2.1, können nun auch Raster-Basemaps (.tpk) beinhalten und in ArcGIS Runtime 100.2.1 genutzt werden
  • 3D Scenes unterstützen nun Raster Layer & Basemaps in WGS84

 

Ausführliche Informationen zu allen Neuerungen in ArcGIS Runtime 100.2.1 findet Ihr in diesem News Blog von Esri Inc. und auf ArcGIS for Developers.

 

 

Maps bestehen in der Regel aus Basemap Layers zur Orientierung und Operational Layers für das Visualisieren, Abfragen, Bearbeiten und Analysieren von Geo-Informationen. In ArcGIS werden zwei Typen von Basemaps unterschieden: Raster Tile Services (gecachte Map Services und Image Services) und die noch recht jungen Vector Tile Services.

 

      Link zur Live Map

 

Für die Offline-Nutzung von Basemaps in ArcGIS Runtime können schon seit langer Zeit Tile Packages (.tpk) direkt aus Raster Tile Services exportiert werden. Brandneu ist nun die Möglichkeit, Bereiche von Vector Tile Services zu exportieren und lokal als Vector Tile Packages (.vtpk) nutzen zu können:

 

Vector Tile Services für den Export


Der große Vorteil von Vector Tile Services ist das clientseitige dynamische Rendering von Tiles. Somit ist die Basemap in jedem Maßstab der Map und bei jeder Auflösung des Displays immer gestochen scharf. Weiterhin werden die Daten und der Style der Basemap getrennt behandelt. Das ermöglicht dynamisches Anzeigen von Labels und das Erstellen von Basemaps mit unterschiedlichen Themen basierend auf immer denselben Datensatz. Und letztendlich werden Vektoren übertragen, also keine Bilder wie bei Raster Tile Services. Das sorgt für hohe Performanz und deutlich kleinere Datenmengen.

In ArcGIS Online werden schon eine Reihe von exportierbaren Vector Tile Basemaps bereitgestellt. Die hier verlinkten Services basieren alle auf denselben World Basemap Daten, aber immer jeweils mit anderem Style. Falls mehrere dieser Basemaps offline genutzt werden sollen, muss nur von einem der Services das vtpk (Daten + „Root Style“) und von allen Services jeweils nur der Style exportiert werden. Dazu später mehr.

Es können auch eigene Vector Tile Services auf ArcGIS Online erstellt und für den Export freigeschaltet werden. Dazu wird in den allgemeinen Einstellungen des Vector Tile Service Portal Items in der Registerkarte Einstellungen der Offline-Modus aktiviert:

 

 

Wie eigene Vector Tile Services erzeugt und dafür verschiedene Styles erstellt werden können, wird in diesen zwei Esri UK - Blogs sehr gut beschrieben:

 

 

Export von Vector Tile Packages und Styles in ArcGIS Runtime

Für den Export von Vector Tile Services und Styles werden die PortalItem IDs der Services, eine Identität (Named User oder ArcGIS Online Developer Account) und mindestens die ArcGIS Runtime Version 100.2 benötigt. Hier ist die exemplarische Vorgehensweise anhand des ArcGIS Runtime SDK for .NET:

 

      Online Map mit dem zu exportierenden Gebiet (AreaOfInterest im ExportVectorTilesParameters)

 

1. Authentifizieren

Der anonyme Export ist nicht erlaubt, es ist eine Authentifizierung erforderlich. Dafür gibt es mehrere Möglichkeiten, z.B in diesem Sample.

 

2. Vector Tile Service PortalItem erzeugen

Wir nutzen in unserem Code-Beispiel die World Topographic Map (for Export). Hiervon wird die Portal ID benötigt.

 

var portal = await ArcGISPortal.CreateAsync();
var portalItem = await PortalItem.CreateAsync(portal,"df541726b3df4c0caf99255bb1be4c86");

 

TIP:

 

Es ist leider nicht möglich, von einem Vector Tile Service equivalente Services mit anderen Styles abzufragen. Um das trotzdem zu automatisieren kann in ArcGIS Runtime nach PortalItems-Typen und Tags gesucht werden.

 

Z.B ist in den hier beschriebenen ArcGIS Online Basemaps der spezifischer Tag "World_Basemap_Export_v2".

 

Bei eigenen Services muss dementsprechend ein eigener spezifischer Tag gewählt werden.

 

So wird gesucht:

var queryExpression = string.Format("tags:\"{0}\"type: \"Vector Tile Service\"", "World_Basemap_Export_v2");

PortalQueryParameters queryParams = new PortalQueryParameters(queryExpression, 100);

// Search the portal using the query parameters and await the results
PortalQueryResultSet<PortalItem> findResult = await portal.FindItemsAsync(queryParams);

// Get the items from the query results
var tileServicePortalItems = findResult.Results;

 

3. Task, Parameter und Job erzeugen und ausführen

Im folgenden Code werden nur die Daten (.vtpk) und nicht der Style exportiert.

// Create the task
var exportTask = await ExportVectorTilesTask.CreateAsync(portalItem);

// Create a new parameters instance
var parameters = new ExportVectorTilesParameters()
{
    AreaOfInterest = exportArea.Geometry,    //area to export
    MaxLevel = exportTask.VectorTileSourceInfo.LevelsOfDetail.Count - 1  //levels to export
};

// Create the export job
var job = exportTask.ExportVectorTiles(parameters, Path.Combine(_vectorTileCachePath, "name.vtpk"));

// Subscribe to notifications for status updates
job.JobChanged += (sender, e) =>
{

   if (job.Status == Esri.ArcGISRuntime.Tasks.JobStatus.Succeeded)
   {
      //do something
   }
   else if (job.Status == Esri.ArcGISRuntime.Tasks.JobStatus.Failed)
   {
      // Notify the user
      ShowStatusMessage(job.Error.Message);
   }
};

// Start the export job
job.Start();

 

Es kann auch das vtpk und der Style (falls vorhanden) in einem Rutsch exportiert werden . Dazu muss dem ExportVectorTilesJob nur zusätzlich der Speicherpfad für einen Ordner für den Style mitgegeben werden.

ExportVectorTilesJob job;
if (exportTask.HasStyleResources)
{
   job = exportTask.ExportVectorTiles(parameters, Path.Combine(_vectorTileCachePath, "name.vtpk"), _styleResourcePath);
}
else
{
   job = exportTask.ExportVectorTiles(parameters, Path.Combine(_vectorTileCachePath, "name.vtpk"));
}

 

Und wenn nur der Style exportiert werden soll sieht es so aus:

var exportTask = await ExportVectorTilesTask.CreateAsync(portalItem);
if (exportTask.HasStyleResources)
{
   var exportStyleJob = exportTask.ExportStyleResourceCache(_styleResourcePath);
   var result = await exportStyleJob.GetResultAsync();
   //do something
}

 

Wenn zum Beispiel alle die weiter oben beschriebenen exportierbaren ArcGIS Online Vector Tile Services lokal als Basemaps verfügbar sein sollen, muss von einem Service das vtpk und von allen Services nur die Styles exportiert werden. In einem StyleResource Ordner befinden sich nur JSON-Dateien mit der Beschreibung des Styles, diese sind sehr klein.

 

Nutzen von lokalen Vector Tile Packages und Styles in ArcGIS Runtime

Das lokale vtpk und ein vorhandener Style können dann so in die Map eingebunden werden:

 

//Load a style
var itemResourceCache = new ItemResourceCache(_styleResourcePath);

//Load the vtpk
var offlineVectorTileCache = new VectorTileCache(Path.Combine(_vectorTileCachePath, "name.vtpk"));

// Create a tile layer with the cache and the style
var layer = new ArcGISVectorTiledLayer(offlineVectorTileCache, itemResourceCache);

// Create a tile layer only with the cache
//var layer = new ArcGISVectorTiledLayer(offlineVectorTileCache);

// Create a new map with the layer as basemap
var map = new Map(new Basemap(layer));

// Apply the map to the mapview
MyMapView.Map = map;

 

Wenn der Entwickler alles beschriebene schön kombiniert, können so in der ArcGIS Runtime App lokal mehrer Basemaps auf Basis von nur einem vtpk genutzt werden. Um den Speicherplatz der Daten auf dem Gerät muss sich meistens auch keine Sorgen mehr gemacht werden. In einem Test mit dem Gebiet grob Bayern in der gesamten Detailtiefe ist die Größe des vtpks + Styles nur ca.230 MB groß und der Export hat knapp 7 min gedauert. Wichtig ist noch die Information, dass es eine maximale Begrenzung ("maxExportTilesCount":10000) für einen Export gibt.

 

     Offline Vector Tile Basemap ohne extra Style (nur das .vtpk geladen)

 

       Offline Vector Tile Basemap mit Style

 

      Offline Vector Tile Basemap mit Style

 

      Offline Vector Tile Basemap mit Style

 

      Offline Vector Tile Basemap mit Style

Web AppBuilder for ArcGIS ist eine intuitive „what-you-see-is-what-you-get“ Anwendung zum Erstellen fokussierter ArcGIS Web-Apps in ArcGIS Online und ArcGIS Enterprise. Die Web AppBuilder Developer Edition bietet zusätzlich ein Framework zum Erstellen eigener Widgets und Themes oder zum Anpassen von schon bestehenden.

 

Die neue Version 2.7 der Web AppBuilder for ArcGIS Developer Edition hat nun den gleichen funktionalen Stand wie der eingebettete Web AppBuilder in ArcGIS Online nach dem Dezember Release. Darüber hinaus wurde die Dokumentation um nützliche Infos erweitert, so können zum Beispiel nun die Beziehungen der verschiedenen Web AppBuilder Versionen zueinander (sie haben nicht immer den gleichen Stand) und die Version der genutzten ArcGIS API for JavaScript nachgelesen werden.

 

Vollständige Informationen stehen in diesem Esri Inc. Blogeintrag.

 

 

      Neu: Public Notification Widget zum Erstellen von Mailing Labels

Als Weihnachtsüberraschung zum Ende des Jahres 2017 wurde das neue Major Release 100.2 von ArcGIS Runtime veröffentlicht. Ziel dieses wichtigen Releases ist das Verringern die funktionalen Lücken zu den ArcGIS Runtime 10.2.x Versionen und auch zu ArcGIS Engine. Neben Bugfixes und Verbesserungen im 2D und 3D Rendering wurden Datumstransformation, mobile Workflows und viele neue Funktionen implementiert.

 

Einige Highlights sind:


• Neuer WMS Layer für WMS 1.3 und ENC Layer für das S-57 Format



      ENC Layer

 

• Support für Shapefiles und OGC Geopackages
• Neue 3D Scene Analysis API für z.B. Viewshed und Line of Sight



      3D Scene - Viewshed

 

• Datumstransformation, auch benutzerdefinierte Transformationen



      Datumstransformation

 

• Exportieren von Vector Tile Packages aus Vector Tile Map Services gehostet in ArcGIS Online oder ArcGIS Enterprise
• Verbessertes Editieren
• Preplanned Workflow für mobile Szenarien
• Time-aware Layers



      Time-aware Layer

 

  • uvm.

 

Ausführliche Informationen zu allen Neuerungen in ArcGIS Runtime 100.2  findet Ihr in diesem News Blog von Esri Inc., auf ArcGIS for Developers in den What's News der SDK's und auf GeoNet in den entsprechenden Bereichen.

Im Juli 2017 wurde das Major Release 2.0 des AppStudio for ArcGIS in einem neuen Look & Feel und mit aktualisierten Werkzeugen, verbesserten App-Templates und neuen App-Template-Samples veröffentlicht. Nun ist die Version 2.1 mit weiteren Neuerungen und Verbesserungen verfügbar.

 

Neuigkeiten in AppStudio 2.1 (Auszug)

  • Unterstützt nun Universal Windows Platform (UWP)
  • Neues Community-Panel in AppStudio Desktop
  • Aktualisierte AppStudio-Templates
  • Neue AppFramework Plugins (Beta):
    • Biometrische Authentifizierung
    • Sichere Speicherung
    • Hochpräzise Positionierung
    • Interapp Communication (Text und URLs mit anderen Anwendungen austauschen)
  • AppStudio Player unterstützt biometrische Authentifizierung und integrierte Windows-Authentifizierung (IWA)
  • mehr...

 

      Neues Community-Panel in AppStudio Desktop

 

 

Ausführliche Informationen zu den Neuerungen von AppStudio for ArcGIS Version 2.1 findet Ihr in diesem News Blog von Esri Inc. und in der AppStudio GeoNet Gruppe.

Filter Blog

By date: By tag: