Skip navigation
All Places > GeoDev Germany > Blog
1 2 3 Previous Next

GeoDev Germany

268 posts

Gleichzeitig an mehreren Aufgaben bzw. Problemen zu arbeiten ist heutzutage normal. Für ganz unterschiedliche Anwendungsfälle und Programmiersprachen eine einzige Entwicklungsumgebung zum Entwickeln und Testen nutzen zu können ist dabei sehr hilfreich. Nachfolgend ein Erfahrungsbericht.

 

Anwendungsfälle

Ausgangspunkt waren zwei ganz unterschiedliche Anwendungsfälle, die aber relativ zeitgleich mit der jeweils passenden Esri Technologie gelöst werden sollten. Es handelt sich einerseits um eine mit AppStudio for ArcGIS 4.0 (aktuell noch in Beta) konfigurierte native App, über die Informationen an einen zentralen Server zum Umwelt-Zustand übermittelt wird (Anwendungsfall 1) und anderseits um ein Open Source Python Skript für die Georeferenzierung (historischer) Luftbilder (Anwendungsfall 2). Bei der ersten Thematik stand die Anpassung der App im Fokus, die aus einer Vorlage erstellt wurde, um sie entsprechend den Bedürfnissen durch eigenen Code anzupassen und beim zweiten ging es darum, fremden Python Code zu debuggen, da er in ArcGIS Pro nicht das vom Benutzer erwartete Ergebnis lieferte.

 

Als Laie im Programmieren ist man in solchen Fällen relativ schnell auf der Suche nach einer leicht zu bedienenden, Entwicklungsumgebung, die bei der Lösung der Probleme behilflich ist. Die Lösung sei vorweggenommen: Mit Visual Studio Code (VSC) von Microsoft wird man fündig. Es unterstützt sowohl Qt (ist in das AppStudio for ArcGIS nahtlos integrierbar) sowie auch Python (und noch vieles mehr). Esri arbeitet darüber hinaus an einer App Studio for ArcGIS Extension für VSC als eine vollständige Alternative zum Qt Creator. Diese Möglichkeit ist jedoch nicht Gegenstand der weiteren Betrachtungen.

 

Anwendungsfall 1: Anpassen von Qt-Code

Die Nutzung von VSC im AppStudio for ArcGIS, welches die innovative Integration von Karten in native Apps für Android, iOS, Windows, Mac OS und Linux unterstützt, ist relativ schnell umgesetzt.  In den Einstellungen wird die entsprechende Option (Nutzung von VSC anstatt Qt Creator) gewählt.

 

Integration von VSC in App Studio for ArcGIS

 

Anschießend ist noch der Pfad zum Installationsverzeichnis von VSC einzugeben.im konkreten Fall ist dies „C:\Program Files\Microsoft VS Code“ (dies kann je nach verwendeter Version von VSC unterschiedlich sein). Als Dateiname ist jeweils „Code.exe“ auszuwählen.

 

Danach wird bei Nutzung der Funktion „Edit {;}“ bzw. „Bearbeiten {;}“ im AppStudio automatisch VSC aufgerufen und der QML-Code eingeladen. Das nachfolgende Bild zeigt die Struktur der Vorlage „Quick Report“ in VSC.

 

Qt-Code der AppStudio Vorlage Quick Report

 

Die relevanten Codeteile befinden sich in den Page Controls, konkret in Pick Type Page.

  QML-Code Teile in VSC

 

Im Code kann das Design geändert und in der zugehörigen Ressourcendatei (verbirgt sich im obigen Bild unter „languages“) der deutsche Text angepasst werden, wie im nachfolgenden Bild dargestellt.

  Ressourcendatei in VSC

 

Das Ergebnis ist in der App nach dem Speichern persistent abgelegt und beim nächsten Ausführen sichtbar.

 

Angepasste UI der App Quick Report

Die Pick-Elemente kommen sowohl hinsichtlich der Symbolik als auch des Textes aus dem bereitgestellten ArcGIS Feature Service. Dieser ist  in AppStudio for ArcGIS unter Einstellungen / Eigenschaften /Form ebenso wie die zugehörige ID der in der App zu nutzenden ArcGIS Webkarte zu hinterlegen. Eine ID für ein „Mobile map package“ ist in diesem Fall nicht erforderlich.

 

Konfiguration im AppStudio for ArcGIS

 

In VSC existiert allerdings kein interaktiver Layouteditor. Für diesen Fall kann auf den Designer im Qt Creator zurückgegriffen werden.

 

Anwendungsfall 2: Komfortables Debuggen von Python Code für ArcGIS Pro

Die zweite Problemstellung, für die VSC zur Anwendung kam, ist das Debuggen von Python-Skripten. Diese können vielfältig in die ArcGIS Welt integriert werden, z.B. um Abläufe zu steuern und automatisiert wiederholbar zu gestalten. Neben der ArcGIS API for Python, die der Automatisierung von Webzugriffen dient, ist ArcPy ein sogenanntes site package, das in ArcGIS Desktop verwendet werden kann. ArcPy ist deshalb auch in ArcGIS Pro integriert und umfasst viele Funktionen zur Automatisierung von Geoprocessing-Abläufen.

 

Eingebundener Python Code in eine Toolbox in ArcGIS Pro

 

In ArcGIS Pro über die Toolbox eingebundene Python-Skripte können über den Projekt-Katalog geöffnet und bearbeitet werden. Zum Bearbeiten wird die integrierte Umgebung IDLE gestartet. Ein Debuggen ist hier nicht möglich, sondern nur über die separat zu aktivierende Python Shell, welche aus subjektiver Sicht kein komfortables Debuggen zulässt.

 

Als Alternative steht VSC zur Verfügung.

 

Innerhalb von VSC muss der passende Python Interpreter hinzuzugefügt werden. Das geht relativ einfach, wenn man für die Settings (Ctrl +,) die richtige ID kennt. In diesem Fall lautet die Parameter-ID „python.pythonPath“. In diesem Parameter ist der Pfad auf die python.exe einzustellen. Um ihn zu finden, nutzt man am besten das Projekt-Menü von ArcGIS Pro und dann Python. Der Pfad steht im oberen Bereich.

 

Verweis auf integriertes Python Paket in ArcGIS Pro 

Im konkreten Fall unter „C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe“, der an der o.g. Stelle der Settings von VSC eingefügt werden muss.

 

Bekanntmachen des ArcGIS Pro Python Pakets in VSC

Danach nutzt VSC die mit ArcGIS Pro installierte Python 3.6 Umgebung einschließlich ArcPy.

 

Für das nachfolgende Beispiel  wurde der Code aus den sogenannten  Historical Imagery GP Tools genutzt. Problem bereitete das Modul „Estimate COG“, was zwar scheinbar erfolgreich lief, aber nicht das erwartete Ergebnis (hier Füllen einer Spalte in einer GDB-Tabelle mit spezifischen Werten) lieferte, da nicht der erwartete Feldtyp seitens der Input-Datei geliefert wurde.

 

Um die Ursache für das beobachtete Verhalten zu erkunden, sollte die Debug-Funktionalität von VSC zum Einsatz kommen.

 

Angenommen wird hier, dass VSC bereits für Python konfiguriert und die entsprechende Erweiterung bereits installiert wurde. Sie kann über die Funktion „Extension (Ctrl Shift X) direkt aus dem VS Code Marketplace gesucht, gefunden und installiert werden.

 

Zur Fehlersuche waren noch zwei Voraussetzungen notwendig.

 

Als Erstes ist es notwendig, dass VSC den Text als Python Code interpretiert. Dafür bieten sich zwei Alternativen an. Die erste ist in der ArcGIS Pro Hilfe zu finden. Die schnellere ist, den Code in eine Datei mit der Endung „py“ zu kopieren. Öffnet man diese in VSC wird sie korrekt interpretiert und syntaxbezogen dargestellt.

 

ArcGIS Pro Toolbox Code in VSC 

Da der Python Code nun außerhalb von ArcGIS Pro ausgeführt wird, benötigt man als Zweites einen Startpunkt ohne Aufrufparameter. Dazu sucht man nach den „execute“ -Funktionen der Module.

 

Execute Statement im Python Code 

Den Code kopiert man sich ohne das Def-Statement am besten ans Ende des Skripts.

 

Wie dem nachfolgenden Screenshot entnommen werden kann, wird in diesem konkreten Fall mit parameters genau ein Input-Parameter erwartet.

 

Parameterübergabe von ArcGIS Pro

 

In ArcGIS Pro wird dieser interaktiv beim Aufruf übergegeben. Stattdessen wird hier der Pfad zu einer Stand Alone Tabelle in einer FGDB direkt in den Code eingefügt. Hierbei ist auf die richtige Einrückung und das Eliminieren von Returns zu achten. Beim except-Statement ist u.U. ein „pass“ einzufügen.

 

Parameterdefinition im Code

 

Eine Alternative mit Einfügen einer Main-Funktion ist hier beschrieben

 

Das nun mögliche Debuggen und das Setzen eines Breakpoints bei „if (Frame.isdigit())“ hat beim Suchen nach dem Fehler geholfen. Im konkreten Fall handelte sich um ein nicht abgefangenes Type Mismatch, dessen Ursache allerdings beim Bearbeiter lag, da ein Feldtyp nicht dem des in der Dokumentation geforderten entsprach. Nach Anpassung wurde das Skript korrekt ausgeführt.

  

Fazit

Mit Visual Studio Code wird durch Microsoft eine „leichtgewichtige“ und gleichzeitig sehr leistungsfähige Entwicklungsumgebung bereitgestellt, die sich sehr gut für Aufgaben rund um die ArcGIS Plattform in Wert setzen lässt. Insbesondere für Laien, die primär konfigurieren und nur wo notwendig auch etwas Skripten, ist VSC ein sehr hilfreiches Werkzeug.

 

Dieser Beitrag wurde mit Unterstützung von Manfred Liermann verfasst.

Der zweite GeoMob Munich mit dem Thema „Maps, Machine learning and AI“ fand am Abend des 18.07.2019 statt. Vielen Dank wieder an Muthukumar Kumar, Managing Editor der Blog-Plattform Geoawesomeness.com, der diese Meetup-Reihe unter dem Brand GeoMob in Deutschland initiiert und organisiert. Gehostet wurde es diesmal auf dem Google Campus in München. Google sorgte auch mit Snacks und Getränken für das Wohlbefinden der Teilnehmer, herzlichen Dank dafür.

 

 

Der Abend war gut organisiert, in der Pause und nach den Vorträgen gab es genügend Zeit zum Networken, was auch ausgiebig getan wurde. Die ca. 70 Teilnehmer setzten sich zusammen aus Studenten und Vertretern von Start-ups und Unternehmen. Ca. 40 % waren Entwickler.

 

Das Programm war sehr interessant, es wurden sieben 10-minütige Vorträge gehalten:

 

  1. Wolfgang Deigele, Master Student der TU München, erzählte über Deep Learning bei der Rasteranalyse mit ArcGIS Pro zur Erkennung von Sturmschäden in Wäldern
  2. EIXOS Economic Observatory präsentierten, wie sie die wirtschaftliche Aktivität in Städten mit Hilfe von maschinellem Lernen und KI überwachen?
  3. Ines Kühnert, Project Manager bei AZO, stellte die Galileo Masters International Innovation Competition
  4. Cassi Welling, COO bei Hawa Dawa GmbH, präsentierte, wie Daten über die Luftqualität in Städten mit Hilfe von Machine Learning und KI überwacht und ausgewertet werden.
  5. Elizabeth Duffy, Business Development bei UP42, stellte eine Entwicklerplattform mit skalierbaren Modulen zur Erstellung von Geo-Lösungen vor.
  6. Aleksander Buczkowski, Senior Manager bei Drone Powered Solutions, PwC, berichtete über die Inspektion von Objekten mit Dronen (z.B. im Energiesektor) und anschließende Auswertung der Bilder mit Hilfe von maschinellem Lernen und KI.
  7. Bilge Kobas, Architektin und Co-founder von Bits’ n Bricks, stellte Ihre Herangehensweise und Lösungen für die Stadtplanung vor. Vom Data Mining über Datenprozessierung, Analyse bis zur Visualisierung.

 

Anschließend gab es noch eine spannende Diskussionsrunde mit allen Vortragenden. Der nächste GeoMob Munich wird am 12.September stattfinden, wir freuen uns Euch dort wieder zu sehen.

 

 

Euer GeoDev Germany Team

Bis heute schuf eine wachsende Autorengemeinschaft Hunderttausende von Story-Maps und an jedem Wochentag kommen über 2000 neue Story-Maps dazu. Dieser Erfolg brachte aber auch Erkenntnisse über Probleme auf die Nutzer stoßen.

 

Ein revolutionärer nächster Schritt

Esri hat das Feedback der Storytelling-Community genutzt, um mit ArcGIS StoryMaps ein völlig neues Storytelling-Tool zu entwickeln.

Zu den wichtigsten Funktionen der neuen ArcGIS StoryMaps gehören:

  • Ein einheitlicher Builder, in dem Sie alle Vorlagen an einem einzigen Ort kombinieren und abgleichen können
  • Neue Designtools, mit denen Sie das Erscheinungsbild Ihrer Story mit nur einem Klick anpassen können.
  • Express-Maps, ein neues Tool zur Kartenerstellung, mit dem Sie einfache Karten in wenigen Minuten erstellen können.
  • Ein völlig neu gestaltetes mobiles Erlebnis, das Ladezeiten minimiert und die Freude am Lesen maximiert.
  • Neue Workflows zum Veröffentlichen, einschließlich automatischer Speicherung sowie der Möglichkeit, Änderungen an einer Story vorzunehmen, diese aber nur zu veröffentlichen, wenn sie final sind.

 

Weitere Informationen gibt es hier und im ArcGIS Blog.

Mit der ArcGIS API for JavaScript können 2D und 3D Web-Mapping-Apps erstellt werden, bei denen räumlichen Funktionen der ArcGIS Plattform zum Einsatz kommen.

 

Die neuen Versionen 4.12 und 3.29 bringen teilweise extreme Performanceverbesserungen, einige Fehlerbehebungen und folgenden Neuerungen (Auszug):

 

 

ArcGIS API for JavaScript 4.12

 

  • Neue Widgets:
    • TimeSlider
    • verschiedene Sliders zum Filtern und Erkunden von Daten
  • Symbologie:
    • über 100 neue out-of-the-Box Symbole für 2D Maps
    • WaterSymbol3DLayer für animierte Visualisierung von Wasser in 3D Scenes
  • Clientseitige Queries in 3D Scenes
  • Neue Sample-App im Showcase und viele neue Samples
  • uvm.

 

Die Highlights können auch in diesem Whats new in JS 4.12 Video auf YouTube angeschaut werden.

 

Neuer WaterSymbol3DLayer

 

ArcGIS API for JavaScript 3.29

  • einige API Updates und Erweiterungen

 

Vollständige Informationen findet Ihr in diesem Esri Blog und in den Release Notes zu Version 4.12 und Version 3.29.

Mit dem kommenden Release von ArcGIS Pro 2.4 jetzt im Juni 2019 wird gleichzeitig auch das zugehöriges ArcGIS Pro 2.4 SDK veröffentlicht, mit dem .NET Entwickler eigene individuelle Werkzeuge und Workflows für ArcGIS Pro erstellen können.

 

Hier ein Vorgeschmack auf die kommenden Highlights:

 

  • Unterstützung für Visual Studio 2019
  • Die Scene Layer API bekommt Verbesserungen beim Umgang mit Filtern, Abfragen, Selektionen und Symbologie
  • Verwalten von Echtzeitdaten, Streaming, Selektion, Filter, Tracking und Ereignisse mit der neuen Stream Layer API.
  • Die Map Authoring API bekommt Verbesserungen bei der Layer-Erstellung, Symbolsuche und JSON-Unterstützung für das CIM
  • Zugriff auf Multipatch-Feature-Eigenschaften mit der Geometrie-API
  • Unterstützung für die Bearbeitung der Styles von Vektorkacheln
  • Katalogunterstützung für benutzerdefinierte Items
  • Verbesserter CIM-Zugang zur Anpassung von Berichten
  • Vollständiger Support von ArcGIS Pro Extensions mit NuGet
  • Verbesserte Doku, Guides und neue Code-Samples

 

Ausführliche Informationen findet Ihr in diesem englischsprachigen News Blog von Esri Inc.

 

Neues Sample zur Scene Layer API

AppStudio for ArcGIS ist template-basierter AppBuilder für native cross-platform Geo-Apps für alle relevanten Plattformen. Mit der Standard-Version können bestehende App-Templates angepasst oder komplett eigene erstellt werden. Und das Ganze mit der vollen Power der ArcGIS Runtime. Nun ist die neue Version 3.3 verfügbar.

 

Highlights sind:

  • Unterstützung für die Erstellung von Android 64-Bit-Anwendungen
  • Neues 3D Viewer Sample-App Template
  • Unterstützung von Xcode 10.1, ArcGIS Runtime 100.5 und Qt 5.12.
  • Quick Report Template unterstützt nun mehrere Featurelayer
  • Unterstützung von Enterprise Mobile Management (EMM) Softwarelösungen (MDM) zum Lesen und Überschreiben bestimmter Standardeinstellungen für iOS- und Android-Geräte.
  • Beta: AppStudio für ArcGIS Extension für Visual Studio Code
  • Und einiges mehr ...

 

Konfigurierbares 3D Viewer Sample-App Template

 

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

Am Abend des 11.04.2019 fand das Meetup #geomobMUC zum Thema „Maps for Machines and Geospatial Applications“ statt. Vielen Dank an Muthukumar Kumar, Managing Editor der Blog-Plattform Geoawesomeness.com, der dieses erste #geomob-Meetup in Deutschland initiierte und organisierte (#geomob sind eine Reihe von Events, die auch in London und Barcelona stattfinden). Gehostet wurde es in der Münchner Firmenzentrale der Firma NavVis, einem innovativen Lösungsanbieter für die Digitalisierung und Visualisierung von Innenräumen. Esri Deutschland sponserte das Event und sorgte unter anderem mit Bier und Brezn für das Wohlbefinden der Teilnehmer.

 

Quelle: meetup.com

 

Der Abend war straff und gut organisiert, in der Pause und nach den Vorträgen gab es genügend Zeit zum Networken und Socializen. Interessant zum Start war eine Live-Umfrage für die ca. 70 Teilnehmer:

 

  • Die Teilnehmer waren bunt durchmischt und stammten von einer Vielzahl von kleinen und großen Firmen und Organisationen aus München aber auch aus anderen Landesteilen.
  • 45% waren Entwickler, 23% Studenten
  • Machine Learning war das Wunschthema des nächsten #geomobMUC Meetups

 

 Hauptteil der Veranstaltung waren 6 hochwertige, 10-minütige Vorträge:

 

  • Lorenz Lachauer, Head Solution Factory Team bei NavVis, erzählte über die Herausforderungen und Möglichkeiten bei der Erfassung, Visualisierung und Nutzung von Daten für Indoor.
  • Dario Manns, Co-Founder von FairFleet, präsentierte die technischen Aspekte des Backends hinter ihrem globalen Drohnen-Dienst.
  • Yashar Moradi, CTO von CloudEO, erzählte über ihre Vision einer Geospatial Market Platform.

 

Vor der Pause informierte Matthias Schenker von Esri über die Power von Storymaps und über ArcGIS for Developers für einen leichten Einstieg in die Entwicklung von Geo- und GIS Apps.

 

  • Johannes Start, Product Owner von Artisense.ai, gab einen interessanten Einblick in ihre Technologie zur Erstellung von Karten für autonome Systeme.
  • Jed Sundwall, Global Open Data Lead von Amazon Web Services, erzählte über freie Daten in Earth on AWS.
  • Siegfried Hartmann, Founder von Analytical Semantics, berichtete über das Analytical Semantics Widget, einer dynamischen Verbindung zwischen Informationsmanagement und Geoinformationssysteme von Esri.

 

Anschließend gab es noch eine spannende Diskussionsrunde mit allen Vortragenden zu technischen Fragen, aber auch Allgemeines wie beispielsweise zur Gründung von Startups.

 

Quelle: meetup.com

 

Insgesamt war es ein tolles und inspirierendes Event. Wir freuen uns auf zwei weitere geplante #geomobMUC Meetups in diesem Jahr in München, und wir würden uns freuen Euch dort (wieder) zu sehen :)

 

 

Euer GeoDev Germany Team

 

 

 

Impressionen :

 

Matthias Schenker, Esri (Quelle: Twitter)

 

Quelle: Twitter

 

Quelle: meetup.com

 

Muthukumar Kumar (Quelle: meetup.com)

Das neue ArcGIS Runtime Major Release Version 100.5 wurde veröffentlicht. Mit ArcGIS Runtime können native 2D und 3D Geo-Apps für Windows, Android, iOS, Linux und macOS erstellt werden. Für das ArcGIS Runtime SDK for macOS wird diese Version 100.5 die letzte sein. Diese Plattform kann zukünftig mit den cross-platform-fähigen Java SDK und Qt/QML SDK adressiert werden.

 

Neben Bug-Fixes und Performance-Verbesserungen gibt es folgende Highlights (Auszug):

 

  • Unterstützung von Mobile Scene Packages. Dieses brandneue Format verpackt eine gesamte 3D Scene + Daten in eine Datei mit der Endung .mspk und kann nur mit ArcGIS Pro ab Version 2.3 erzeugt werden.
  • Unterstützung von Reference Scale zum Skalieren der Größe von Symbolen und Texten beim Zoomen.
  • Unterstützung von Annotation Layers, Group Layers, Point Scene Layers und Point Cloud Layers
  • Unterstützung von Subsurface Navigation in 3D Scenes für die Welt unter der Erdoberfläche
  • Unterstützung von OGC WFS Services
  • Mehr Möglichkeiten für die Symbolisierung
  • Mehrere Optimierungen rund um Offline Workflows
  • Unterstützung des Next Generation Locators aus ArcGIS Pro ab Version 2.3, welcher schnellere und bessere Resultate und weniger Speicherplatz verspricht.
  • KML Tour zum Präsentieren von Touren aus KML Files.
  • uvm.

 

Subsurface Navigation

Subsurface Navigation 

 

 

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

Die ArcGIS API for JavaScript bietet effiziente Unterstützung beim Erstellen von 2D und 3D Web-Mapping-Apps, bei denen die räumlichen Funktionen der ArcGIS Plattform zum Einsatz kommen. Nun die Versionen 4.11 und 3.28 veröffentlicht. Neben Bug-Fixes und Performanceverbesserungen gibt es folgenden Neuerungen (Auszug):

 

ArcGIS API for JavaScript 4.11

  • Out-of-the-Box Editor Widget
  • GeoJSON Layer für 2D und 3D
  • 3D Updates
    • Out-of-the-Box Sketch Widget
    • 3D Point Transform Tool zum Manipulieren von Objekten
    • glTF Support
    • 3D Rendering in High Resolution
  • Neue Renderer für Dot Density und Heatmap
  • Time und Table Support in Feature Layers
  • Neue Samples
  • uvm.

 

 

ArcGIS API for JavaScript 3.28

  • API updates and enhancements

 

 

Vollständige Informationen zu den neuen Versionen findet Ihr in diesem Esri Blog, und in den Release Notes zu Version 4.11 und Version 3.28.

Introduction

Developing a mobile mapping application means a lot of work. Besides the obvious work - the development of the mobile client - cartography is a not inconsiderable part of the whole work. Maps have to be designed that combine information from many different sources and then provide them in a mobile data format.
But if the product of this export is also valid and displayed correctly in the mobile client you will not see it until you open the caches in it. So: How can you be sure, that your caches are valid as expected?
In fact, there is currently no standard tool for checking caches. So if you have not completed any application, you had no way to check the data export.
Until now. Because now there is a tool called ArcGIS Runtime Explorer, available on GitHub for free, which was developed exactly for it.

 

 

View the mobile content

This application was created by Esri Germany developers to facilitate their daily work. Just open and check a mobile geodatabase or the newer mobile map package format? No problem. It even supports multiple maps of an MMPK, as well as embedded locators. Raster data is also supported, both as part of the caches and as additional content to easily orient yourself. All data is displayed in a map, along with a legend with all symbols.
Even bookmarks are evaluated and can be displayed.

So far all the standard functionality that one would expect from a finished client.

 

 

Get a deep insight

But there is a lot more in this tool. It shows a lot of little additional information that you would not get so obvious in most other applications.
How many layers does the cache actually have and how many are editable?
Are all layers currently visible or are individual elements just hidden due to the current scale?
Where is my map extend and how tall is it?
What is the extend of each layer? Is it congruent with other layers or are they different?

 

 

Do things that no one has ever done before

But it's not just about looking at data. I am even able to manipulate this data.
For example: I do not want to zoom in too deeply into the map because the background map will otherwise blur. From when that is the case I would like to test out and set therefore on the Map object the MaxScale property.

In addition, I should not be able to zoom out more than on my country, so just try it quickly, as this fits best in the map, read off the scale factor and enter as MinScale property - done.

 

Another example: the representation of my surfaces turns out to be opaque, in the truest sense of the word. The underlying base map is no longer recognizable.
Practically, I can adjust the transparency so that I get the best possible view.
It is even possible to set a filter on a layer using SQL Where condition and thus limit the displayed features.

Perfect Tool?

What is perfect? But it helps a lot if you do not have to put the same functions into an application over and over again just to look at a mobile cache. And this tool provides just a lot more information and possibilities.
In addition, the tool is maintained and further developed, because it is just used.
Moreover, because it is under a free Apache license, anyone can make changes to it and also give it back and thus contribute to the improvement of the tool.
Therefore: it's free, use it!

Am 31. Januar 2019 tritt laut Oracle eine wesentliche Änderung in der Lizenzierung und Unterstützung von Java in Kraft. Die Hintergründe dazu sind in diesem Blog gut beschrieben:

 

https://www.cio.de/a/kostenexplosion-bei-java 

 

Aufgrund dieser Änderungen hat Esri beschlossen, die Java Runtime Environment (JRE) von Oracle durch die AdoptOpenJDK JRE zu ersetzen. Diese ist in ihrer Funktionalität mit der JRE von Oracle identisch. Wie sich diese Änderung auf ArcGIS auswirkt und welche Schritte zu beachten sind könnt Ihr hier nachlesen:

 

Zusammenfassung aller Änderungen in ArcGIS auf Deutsch:

Änderungen in der Java-Lizenzierung: Auswirkungen auf ArcGIS - ArcGIS Blog 

 

Änderungen in ArcGIS Desktop/Engine und ArcGIS Enterprise auf Englisch:

How Java Licensing Changes Will Affect ArcGIS — Learn What You Need to Do 

 

Änderungen des ArcGIS Runtime SDK for Java auf Englisch:

Release notes for 100.4.0—ArcGIS Runtime SDK for Java | ArcGIS for Developers 

 

Mit dem Release von ArcGIS Pro 2.3 wurde auch das zugehöriges ArcGIS Pro 2.3 SDK veröffentlicht. Mit diesem SDK können .NET Entwickler eigene individuelle Werkzeuge und Workflows für ArcGIS Pro erstellen.

 

Die Highlights sind:

 

  • Map Exploration: Neues Table Control
  • Geodatabase API: Plug-in data sources Template zur Erstellung neuer Datenformate
  • Dimension API: Neue API für Dimensions
  • Content API: Erweiterte Unterstützung für Metadaten
  • Aktualisierte Dokumentation und neue Samples auf GitHub
  • Preview-Version von ArcGIS Pro Extensions NuGet: beinhaltet alle Assemblies zum Entwickeln von AddIns und Configurations

 

 

Ausführliche Informationen zu allen Neuerungen des ArcGIS Pro 2.3 SDK findet Ihr in diesem News Blog von Esri Inc. und in der ArcGIS Pro 2.3 API Reference.

Introduction

Date extraction from OpenStreetMap (OSM) can be performed in various ways. The OSM project features a website, where data can be extracted in the OSM-invented .pbf-format. External platforms provide already preprocessed and verified data from the websites. The Overpass API allows users to download small extents of data (approximately on town and suburb level) via a web request. This API acts like a database server and can be queried with a special database request language, Overpass QL.

 

The free OSM2ArcGIS Python script, available on GitHub, is based on data requested via the Overpass QL using an adapted version of Jeffrey Scarmazzi’s osm_runner python module. The requested data is processed and converted to the ArcGIS SpatialDataframe format. After data processing in ArcGIS Online / ArcGIS Enterprise, a new feature service is created inside the user’s portal.

 

Within the feature service, the data is organized in at least three different layers for the three available geometry types point, polyline and polygon (more layers for more configurations, will be explained later). The additional features of OSM2ArcGIS are explained in detail within the following sections of this blog entry.

 

Requirements

Python

Following Python version and packages must be installed. The installation of Anaconda helps to keep existing python installations working by creating indepedent python environments. Users benefit from an Anaconda integrated package installation and administration interface.

 

How to set up the Python Environment in Anaconda:

Download and install the 3.x Version of Anaconda. Then open the Anaconda Navigator and create a new Python Environment. The Python version must be 3.5 or later. Then install these packages in the environment:

Additional Requirement

An ArcGIS Online Account with user type “Creator” (New user types) or an ArcGIS Enterprise account with user type “Level 2” (Named user, for version 10.6. and below) and at least a “Publisher role(An ArcGIS Online Developer Account also meets these requirements)

 

First steps

  1. Setup your python environment as described in the section “Requirements”.
  2. Download the files from the GitHub repository.
  3. Extract the files from the downloaded OSM2ArcGIS zip archive to a location of your choice.
  4. Adapt the content of the file runScript.bat to match the paths of your Anaconda installation, the python-environment and the location of the OSM2ArcGIS folder, where the project files have been extracted to in step 2. E.g.:
    set path=C:\your_anaconda_install_path\Anaconda3\Library\bin\;%PATH%
    call conda activate OSM2ArcGIS
    call "C:\Users\your_username\AppData\Local\conda\conda\envs\your_python_environment"\python.exe "C:\your_project_extraction_path"\MainModule.py
  5. Adapt the content of the ArcGIS Online / Portal for ArcGIS configuration file agolconfig.json to match your portal URL, your username and password.
  6. Optionally adapt the content of the OpenStreetMap configuration file osmconfig.json to the desired region, add configurations or remove the sample configuration.
  7. Execute the file runScript.bat from your file-browser
  8. Go to your ArcGIS Online portal and look at the results
  9. Click on your most recently created feature service and use the pane “Visualization” to show the results. If you did not modify osmconfig.json, the result should be an output like this:
     

Figure 1: Output data in the portal with the OSM2ArcGIS sample configuration

 

 

The data

The geodata contributed to the OSM project is not as standardized as data provided by governmental organizations or companies. There are guidelines inside the OSM wiki, but users operate various clients on various devices and are not forced to generate geometries in a specific way or provide detailed attribute values in exactly defined attribute fields.


This may lead to problems when parsing the data and trusting on specific data types. Also using OpenStreetMap for a roadmap with exact speeds on road sections is not always a good idea when there is no exact unit specified in all road sections. That’s the reason we decided not to use integer or float data types in attribute data, all attribute data except the timestamp for every OSM object are stored as strings.


Another challenge using OSM is related to the geometric data structure with way, node and relation objects. Nodes can be easily transferred to ArcGIS point objects, way objects not having the same start and end can also be easily transferred to ArcGIS polyline objects. More complicated output geometries are polygons, as they can be formed by way objects with the same start and end or relations, which connect multiple way objects to form a “multipolygon”.

 

Relations can also connect multiple point objects or point and way objects. To take only relation objects into account, that form “multipolygons” by connecting way elements, the polygon-connecting relations feature the attribute “multipolygon” with the value “yes” (see figure below). Relations not forming “multipolygon” features are not regarded in OSM2ArcGIS.

 

 

Figure 2: Multipolygon relation element in OpenStreetMap


The configuration

The configuration of OSM2ArcGIS can be defined by the user in two JSON-based configuration files, agolconfig.json and osmconfig.json. The first one enables the tool to establish connections to the ArcGIS Enterprise / Online portal.  The latter is used to setup configurations for requests to the OpenStreetMap server. Explanation of all JSON attributes and examples for configurations are listed in the table below.

 

ParameterUsageExample
"categories"Controls the export of elements from OpenStreetMap, for every new configuration with another geometry or OSM key a new category must be created within the following 5 properties: 

- The desired OSM key for "categoryName" property. Multiple values not allowed here. 

- The desired OSM tags for "categoryValue" property. Multiple values in square brackets. 

- The excluded fields from service on ArcGIS Online for the "attributeFieldsToExclude" property. Multiple values in square brackets. 

- The geometry type, valid types are "line", "point" or "polygon". Multiple values not allowed here. 

- Set the "isEnabled" property to "yes" to activate or to "no" to deactivate a configuration. Currently unneeded configurations retainable in configuration file.
"categories" : 

     { 
         "categoryName" : "public_transport", 
         "categoryValues" :["station", "platform"], 
         "attributeFieldsToExclude" : ["bus", "tram"], 
         "geometryType" : "polygon", 
         "isEnabled" : "yes" 
     }, 
     { 
         "categoryName" : "public_transport", 
         "categoryValues" : ["station", "platform"], 
         "attributeFieldsToExclude" : ["bus", "tram"], 
         "geometryType" : "point", 
         "isEnabled" : "yes" 
     }, 
     { 
         "categoryName" : "public_transport", 
         "categoryValues" : ["platform", "network"], 
         "attributeFieldsToExclude" : ["bus", "tram"], 
         "geometryType" : "line", 
         "isEnabled" : "yes" 
     } 
]
"boundingBox"Bounding box for the data to be loaded. Multiple bounding boxes not allowed here."boundingBox" : 

     "minLatInit" : "48.0503", 
     "minLonInit" : "11.2723", 
     "maxLatInit" : "48.2597", 
     "maxLonInit" : "11.8113" 
}


Valid OSM keys are listed here: https://taginfo.openstreetmap.org/api/4/projects/keys

Valid OSM tags are listed here: https://taginfo.openstreetmap.org/api/4/projects/tagshttps://taginfo.openstreetmap.org/api/4/projects/tags


The modules

OSM2ArcGIS was originally developed by Simon Geigenberger. The tool consists of seven modules, which are loaded, when they are needed at the current position in the program. The MainModule is loaded as the core part of OSM2ArcGIS and invokes the modules AGOLConfigHelper, OSMConfigHelper, OSMHelper and AGOLHelper.

 

AGOLConfigHelper

AGOLConfigHelper validates the configfile agolconfig.json, the module checks the availability of ArcGIS API for Python and then continues to check the configfile. A quick connection check with the given credentials in the configfile is also performed within this module. The module terminates the whole program if invalid values were specified within the configuration file.

 

OSMConfigHelper

OSMConfigHelper validates the configfile osmconfig.json, the module checks the availability of ArcGIS API for Python and then continues to check the configfile. Categories and Tags available in OSM are downloaded from an OSM database and the values set in the configfile are compared with the values in the database. The module terminates the whole program if the set values or tags in the configfile are not available in the OSM database of valid tags/values, an invalid boundingbox or other invalid values are set within the configfile.

OSMHelper

OSMHelper module is designed to setup and control the requests sent to the OpenStreetMap server using the extended osm_runner module. The module is configured to optimize processing speed by creating threads, to simultaneously download data from the OSM server for the configurations in the configfile.

Osm_runner

Osm_runner module was originally developed by Jeffrey Scarmazzi and has been extended to process the relation entities with the attribute “multipolygon” and the value “yes”.

Osm_runner_utils

Osm_runner_utils provides configuration settings used with the osm_runner module. Details on the OSM server request format can be set, as well as the output format for the server’s answer and additional filters can be changed by modifying this module.

AGOLHelper

AGOLHelper expects an Esri SpatialDataFrame as input object and performs the creation of a feature service inside the user’s portal in ArcGIS Enterprise / Online and the upload of data for the defined configurations to at least one layer for every geometry type set in osmconfig.json. Uploads to the portal are performed using multiple chunks of data to prevent server errors on large datasets.

 

Conclusion

OSM2ArcGIS makes it easy to transfer data from OSM to an ArcGIS Enterprise / Online portal. All you need to do is to setup your python installation, configure the tool via the JSON-based configfiles and to make sure, that you were granted at least a publisher role by your portal administrator.

If you have any questions or comments please feel free to contact me or leave a comment in the comment section below. 

 

The script is available for download from GitHub


Happy data processing, Lukas 

(E-Mail: lukas.bug@aol.de)

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

 

Neues Visibility Widget im WAB

 

Die neue Version 2.11 hat nun den gleichen funktionalen Stand wie der eingebettete Web AppBuilder in ArcGIS Online vom Dezember 2018 Release. Hinzugekommen sind hier z.B. zwei neue Widgets und etliche Verbesserungen bei bestehenden Widgets. Neu auf der Homepage der lokal installierten Developer Edition ist nun die sinnvolle Möglichkeit für Administratoren, auch Apps und Templates von Kollegen verwalten zu können.

 

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

AppStudio for ArcGIS ist eine innovative Anwendung zur Erstellung nativer cross-platform Geo-Apps für alle relevanten Plattformen. Apps werden einmal erstellt und sind dann und auf jedem Gerät sofort verwendbar. Mit der Standard-Version lassen sich die mit den konfigurierbaren Esri Vorlagen erstellten Apps weiter ausbauen, powered by ArcGIS Runtime. Nun ist die neue Version 3.2 verfügbar. Neben Bug-Fixes gibt es viele Neuerungen.

 

Einige Highlights sind:

  • AppStudio Player hat ein neues Dark Theme
  • Bluetooth LE Beacons für Positionsbestimmung z.B. in Gebäuden werden unterstützt
  • Das Quick Report Template unterstützt nun Mobile Map Packages (mmpks)
  • Upgrade auf das aktuelle ArcGIS Runtime 100.4
  • Die neuen ArcGIS User Types werden unterstützt

 

AppStudio Player im Dark Theme

 

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

Filter Blog

By date: By tag: