GIS FOR A SUSTAINABLE WORLD 2019
Matthias Schenker – CTO, Esri Switzerland - Zurich
ArcGIS for Developers
Presentation TitleThank You to Our
Sponsors
Options Building Custom Solutions
• Take existing ArcGIS Apps and configure
• Build custom web and mobile apps using builders
• Build custom apps using ArcGIS client APIs
• Extend ArcGIS Desktop
• A mixture of all of the above
- ArcGIS system architecture designed to support this interoperability
Apps
Desktop
APIs
ArcGISA Comprehensive Geospatial Platform
Supporting Individuals, Teams, and Organizations
Enterprise
& Online
Dashboards
Story Maps
Social MediaBrowser AppsProfessional
Desktop Apps
Server Admin
Apps
Mobile Apps
The ArcGIS System
A P I s
ArcGIS Developer Platform | Apps Empower Your Users
500,000+ Web Apps Created and Deployed
AppStudio
Build Once, Deploy on Any Device
Simple and Powerful
Many Widgets
Web AppBuilder
3D
ArcGIS App Builders | Enable Everyone to Build Apps
Improved Developer Program
Supporting GIS, Enterprise, and Independent App Developers
• Performance
• Usability
• Functionality
New and Improved
JavaSwift
.NET
Qt
Xamarin
Objective-CC++
C#
KotlinQML
SDKs
ArcGIS Developer Platform | Extending GIS and Creating New Apps
For Devices,
Web, and Desktop
Web Apps
Pro Add-Ins
Python API
Pro SDK
JavaScript
API
ArcGIS
Native
Device Apps
Runtime
SDK
Deployable Independently
Connected andDisconnected
ArcGIS for Developers - developers.arcgis.com
• Your starting point for finding ArcGIS Runtime SDK resources
- Sign up to receive credits for developing and testing your apps!
• Downloads
- ArcGIS Runtime SDKs for all platforms
• Documentation
- Developers guide, API reference, Samples documentation
• Samples
- Focused samples to illustrate API functionality
- Full example apps
• Tutorials
- DevLabs: Data, Design, and Develop
Start here!
D
ArcGIS APIs
ArcGIS APIs
• Extension APIs for customizing and extending ArcGIS
- Desktop
- Server
• Scripting and Automation
• Client APIs for building Apps
- Web
- Mobile
- Desktop
ArcGIS Extension SDKs
• Allow developers to customize ArcGIS for their specific workflows
• SDKs are designed and built specifically for this purpose
• ArcGIS Pro SDK for .NET
• ArcGIS Enterprise SDK
• ArcObjects SDK
ArcGIS ProCustomizing and Extending ArcGIS Pro
• Extend with your own custom tools and solutions using the Pro SDK for Microsoft .NET
• Configure UI through settings and workflows through tasks
• Automate using geoprocessing and Python
ArcGIS Pro SDK for .NETCustomizing and Extending ArcGIS Pro
• Modern framework design specifically to support customization of Pro
• Microsoft .NET – develop with Visual Studio 2015 and 2017
• Three patterns:
- Add-Ins – Develop new tools and functionality, and customize UI
- Configurations – Deeper customization, branding, start-up experience, streamline UI
- Plug-in data sources – Develop new data source formats
ArcGIS Pro SDK for .NETCustomizing the UI with Add-ins
• Easy to share and install
• Deployed as a single zipfile package, with .esriAddInX extension
• Can be secured and licensed
ArcGIS Enterprise SDKExtending ArcGIS Pro Compatible Services
• Extending ArcGIS Pro based services
- Building Server Object Extensions (SOEs)
- Building Server Object Interceptors (SOIs)
• Supports Feature and Image services
• SDK for Java and .NET developers
• IDE integration for Eclipse (Java) and Visual Studio 2015 and 2017 (.NET)
• Help documentation and API reference
ArcObjects SDKSupporting ArcMap Based Development
• Customizing and Extending ArcMap
• Extending ArcMap based services
- Building Server Object Extensions (SOEs)
- Building Server Object Interceptors (SOIs)
• Supporting VS 2015 / 2017 and .NET 4.5
• ArcObjects continue to be supported
• ArcObjects resources available on GitHub
Scripting and Automation
ArcGIS Client APIs
• ArcGIS REST API
• ArcGIS API for Python
ArcGIS REST API
• ArcGIS Online and ArcGIS Enterprise services are RESTful services
• Over 25 service types
• Grouped into 4 sub categories
- Location based services
- GIS services
- Users, groups and items services
- Enterprise administration services
• Higher level ArcGIS APIs wrap these REST services
- Simplifies development
- Presents capability in a more familiar environment
- The underlying REST service can still be access directly if required
https://developers.arcgis.com/rest/
ArcGIS Python APIA Whole New Way to Experience and Leverage ArcGIS
• Analytics - Data Science
• Scripting and Automation
• System Administration
Command Line
Scripts Jupyter
Notebooks
https://developers.arcgis.com/python/
ArcGIS Python APIProviding Answers to Questions Through Data Science
• What happened, where and when?
• Why did it happen?
• What will happen, where and when?
• What do we do about it?
ArcGIS Python APIThe 3 Stages of Data Science
• Data preparation
• Analysis
• Dissemination
Familiar
Experiences
Advanced Analysis,
Scientific Methods,
Tools, Algorithms
Notebooks with ArcGIS API for PythonYour Lab for Enterprise Data Science
• API Designed for Data Science
• Delivered via a familiar experience
• Brings Data Science to your Web GIS
• Designed for Machine Learning and Deep Learning workflows and models
- Build, train, iterate, test, deploy, infer
• Create reproducible research, share and collaborate
Spatial Analysis,
Geocoding, Geoenrichment
Raster Analytics & Image Processing,
Geoanalytics(Distributed Computing, Big Data)
Notebook Server
Where is the Analysis Done?
Automate WebGIS
Management
• Populate portal with users,
groups
• Reassign user content
• Create reports of users, their
items
• Clone portals and items
between portals
• Backup / Restore
Automate content
creation
• Automate content publishing
during off peak hours
• Update tiles and features from a
known database
• Replicate development
environment content to
production
Advanced
Housekeeping
• Front end
• Find/Remove test items
• Find incomplete groups and
items and alert owners
• Back end
• Find broken links
• Update references
Some administrative tasks are “better” when scripted
Client SDKs
ArcGIS Client APIs Designed for Web GISWorking with the GeoInformation Model – ArcGIS Identity
• Users have a unique secure identity
• Content saved under user name
• Users can be assigned special privileges
• Users can share or keep content private
• Organize users, content and services
• Find, upload, share, configure, secure
ArcGIS API for JavaScript
• 2D and 3D visualizations
• Simple and consistent API
• Rich visualizations possible with simple layer styling
• Works well with various JS frameworks and development environments
• High performance display
- WebGL driven
- Client side engines for local processing of data
https://developers.arcgis.com/javascript/
ArcGIS API for JavaScript2D and 3D Mapping
• Programming pattern similar between 2D and 3D views
- Views share implementation for layers, renderers, tasks, geometry, symbology, pop-ups, and navigation
• 3D adds specific capabilities for environmental aspects and camera
• Unique 3D symbology
• Data driven visualization
ArcGIS API for JavaScriptHigh Performance Map Display
• Combination of fast rendering on the client and efficient delivery of content
• Tiled feature services support efficient delivery of GIS features
- Tiles generated on the fly on the server and cached
- Updated automatically when underlying data changes
- Geometry and attributes are sent to client
- Supports editing
• Vector Tiles supported when full features or data currency not required
- After initial creation less server load
Rendering
Performance Demo
ArcGIS API for JavaScriptAnalytics Server and Client Side
• Local engines
- Geometry
- Projection
• Interactive scene analysis
• Network analysis on the server
• Geoprocessing on the server
ArcGIS API for JavaScriptUser Experience
• Responsive user interface design
• Comprehensive widget set means rapid application development
- Over 25 widgets including; Legend, Coordinate conversion, Measure, Search, Popup, Print, …
- Rich popup implementation
- Consistent out of the box styling
• Possible to reuse business logic and style custom user interfaces
- Use themes, write your own CSS styles or customization via SASS
- Repurpose widgets to work with frameworks such as React, Angular, Vue and others.
ArcGIS Runtime
SDKs
Device
ArcGIS Online
ArcGIS
Enterprise
ArcGIS Runtime Overview
App
ArcGIS Runtime
API
ArcGIS
Runtime
OGC ServicesLocal Data
Overview – ArcGIS Runtime SDKsNative App Development
• Support 6 operating systems / platforms
- Android, iOS, macOS, Linux, Universal Windows Platform (UWP) and Windows
• 5 APIs
- .NET, Android, iOS, Java, and Qt
• You select the development environment of your choice
- Integrates with your solution
- Makes you productive
• Your users benefit from the optimum solution
https://developers.arcgis.com/arcgis-runtime/
Overview – ArcGIS Runtime SDKsWhy Build a Native App?
• Native apps give the best performance
• Fully leverage device capabilities
• Access all peripherals via their native SDKs
• Best debugging experience
• Offline use of ArcGIS
- Maps, scenes, editing, analysis, routing…
Overview – ArcGIS RuntimeAn Architecture Designed to Maximize Performance and Reuse
C++ runtime core
WinLinux OS XAndroid iOS UWP
x86 x64 ARM ARM64DirectX
OpenGL
OpenGL ES
Capabilities – ArcGIS Runtime SDKs
• Working with Layers from Services
- Also WMTS, WMS, KML and WFS*
• Working with local GIS data
- Mobile Geodatabase, GeoPackage, Shapefile, KML, Raster, various Packages in 2D and 3D
• Working with Maps
- Also offline or if you want to generate and share new maps
• Working with 3D content
- Now also with Pointclouds and integrated Meshes*
- Also offline
* Released in Q1 2019
ArcGIS Runtime SDKsAnalysis
• Works with services
- Geoproessing
- Network analyst
- Geocoding
• Local Engines
- Geometry
- Projection
- Network
- Geocoding
• Interactive 3D Analysis
- Viewshed
- Line of Sight
- Measure
ArcGIS Runtime SDKsUltimate Performance
• Device capabilities continue to grow
• Harnessing this power is critical for tomorrows Apps
• ArcGIS Runtime brings it all together
- Display
- Data access
- Analytics
• Online and offline
• ArcGIS Runtime enables you to build apps with large data volumes updating in real-time
ArcGIS Runtime AR / VR Beta Program
• Started November 2017
• Available for ArcGIS Runtime SDKs for:
- Android
- iOS
- .NET (Xamarin.Android, Xamarin.iOS)
• Targeting mobile devices
• Includes beta API to support building AR or VR
Request access to the beta program:
ArcGIS Runtime – Augmented Reality
• Initial release will focus on capabilities of the predominant AR platforms
- ARKit – iOS
- ARCore – Android
• Available for ArcGIS Runtime SDKs for:
- Android
- iOS
- .NET (Xamarin.Android, Xamarin.iOS)
• Two scenarios
- Small scale representations of virtual content placed in the real world ‘Table top’
- Full scale real world view
D
Summary
• Extension APIs for customizing and extending ArcGIS
- Desktop
- Server
• Client APIs for building Apps
- Web
- Mobile
- Desktop