arcgis for developers seminar - systematics...• comprehensive widget set means rapid application...
TRANSCRIPT
11/18/2019
1
ArcGIS for Developers
Euan CameronCTO Developer Technology, Esri
Welcome
1
2
11/18/2019
2
Easier, Open,and Accessible
Data
Computing GIS Innovation
Expanding the Power of GIS
WebGIS
GIS Is Advancing RapidlyIntegrating and Leveraging Many Innovations
WebGIS
Data
Imagery
Drones
Weather
Demographics
3DTraffic
Scientific Measurements
Lidar
Full-Motion Video
Crowdsourcing
IoTReal-Time
Remote Sensing
Expanding the Power of GIS
Easier, Open,and Accessible
GIS Is Advancing RapidlyIntegrating and Leveraging Many Innovations
3
4
11/18/2019
3
WebGIS
Computing
SaaS
Faster
MicroservicesWeb Services
Cloud
Big DataMobile
Networks
Distributed Computing
Containerization
Machine Learning / AIVirtualization
Expanding the Power of GIS
Easier, Open,and Accessible
GIS Is Advancing RapidlyIntegrating and Leveraging Many Innovations
WebGIS
GIS Innovation
Distributed ArchitectureContent
Real-TimeData Exploration
Analytics
Imagery
Scripting 3D Visualization
Smart Mapping
Apps
Predictive Modeling
Geospatial AI
Expanding the Power of GIS
Easier, Open,and Accessible
GIS Is Advancing RapidlyIntegrating and Leveraging Many Innovations
5
6
11/18/2019
4
Teams
Distributed
Leveraging
Web Services
Engaging
Everyone
Individuals
Departments
Organizations
Communities
Sharing and
Collaboration
. . . and
Interconnected
Web GIS Is the Modern GIS ArchitectureHelping Everyone Do Their Work Better
Digital Transformation
Digital Automation
Simultaneous
Sequential Workflows
Changing How Organizations as a Whole . . .
. . . Do Their Work
Integrated Operations
Web GIS Is Driving Digital TransformationHelping Organizations Re-envision Their Workflows
7
8
11/18/2019
5
Web Apps
App Builders
Smart Mapping
Portals
Web Maps
Online Content
Hub
Open Data
Solution Apps
Distributed
Story Maps Visualization
Field Apps
Location Analytics
. . . Fueled by Powerful Data and Analytics
What Makes Web GIS So Compelling?Easy, Accessible, and Interconnected . . .
Organizations
Communities
People
Supporting Communication
and Real-Time Awareness
A Common Framework . . .
for Collaborating and Problem Solving
Web Maps Engage and Interconnect . . . EveryoneProviding a Common Language
9
10
11/18/2019
6
ArcGIS Is Open and Interoperable
Certifications
. . . Successfully Integrated Into Thousands of Systems
AutoCAD
SAP HANA
Adobe Creative Cloud AWS
AzureMS Office
Oracle
SQL Server
Teradata
NetezzaSharePoint
Jupyter Notebook
Power BI
R Python
Revit PostgreSQL
Altibase
Dameng SQLite
Extensible ArchitectureOpen-Source Contributions
Open APIs & SDKsOpen Data Access Open-Source Integration
REST
OPeNDAPWMS
WCS CSW
GML
WFS
KMLWMTSSLD
GeoPackage
SOAP
IFC
LAS
netCDF
SQL
JSON WaterML CityGML
OneGeologyLERC
Shapefiles
Web Scene (I3S)
INSPIREXLSForm
WPSIMDF
Open Standards and Formats
Direct Product Integration
Open Software Architecture
Embeddable
. . . Many
Hadoop
Strategies for Building Custom Solutions
1. Take existing ArcGIS Apps and configure
2. Build custom web and mobile apps using builders
3. Build custom apps using ArcGIS client APIs
4. Extend ArcGIS Desktop and Enterprise
5. A mixture of all of the above
- ArcGIS system architecture designed to support this interoperability
11
12
11/18/2019
7
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
Deployable Independently
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
Connected andDisconnected
Web Apps
Pro Add-Ins
Python API
Pro SDK
JavaScript API
ArcGIS
Native
Device Apps
RuntimeSDK
13
14
11/18/2019
8
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
CityWorks
OSIsoft
Navigate
Geodecisions
Pix4D
Trimble Leica
BadElf
Operations Dashboard
Survey123 for
ArcGIS
Collector for ArcGIS
Navigator for ArcGIS
ArcGIS for Desktop
Workforce for ArcGIS
Field
Operations
Drone2Map for
ArcGIS
Esri Apps and Your Apps Working TogetherA Field Apps Example
15
16
11/18/2019
9
ArcGIS APIs
ArcGIS APIs
• Client APIs for building Apps
- Web
- Mobile
- Desktop
• Extension APIs for customizing and extending ArcGIS
- Desktop
- Server
17
18
11/18/2019
10
Client SDKs
ArcGIS Client APIs
• ArcGIS REST API
• ArcGIS API for JavaScript
• ArcGIS Runtime SDKs
• ArcGIS API for Python
• APIs architected to take full advantage of the Web GIS Pattern
19
20
11/18/2019
11
ArcGIS Client APIs Designed for Web GISWorking with the GeoInformation Model – Maps and Layers
• The GeoInformation Model is the information model of WebGIS
• Content can be authored using online Map Viewer or ArcGIS Pro
- Complex advanced visualizations easily created with Smart Mapping
- Capabilities such as popups, bookmarks and slides supported
• The API for working with raw services is the same as content authored
- No capabilities are lost
• Working with Maps, Scenes and Layers are more productive than the raw services
• Apps can be updated on the fly with new content via the maps they open
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
21
22
11/18/2019
12
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 API for JavaScript
• A modern JavaScript API for Web GIS
• Supports 2D and 3D visualizations
• Data driven visualization
- Turn data into information
- Where, What, How Much, and When
- Smart Mapping
• Supports elegant and engaging user experiences
https://developers.arcgis.com/javascript/
23
24
11/18/2019
13
ArcGIS API for JavaScriptA Modern API
• Simple and consistent API
• Rich visualizations possible with simple layer styling
• Works well with various JS frameworks and development environments
• Harnesses the power of modern browsers
- High performance map display with WebGL
- Client side engines for local processing of data
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
25
26
11/18/2019
14
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 JavaScriptAnalytics Server and Client Side
• Local engines
- Geometry
- Projection
• Interactive scene analysis
• Network analysis on the server
• Geoprocessing on the server
27
28
11/18/2019
15
ArcGIS API for JavaScriptUser Experience
• Responsive user interface design
• Mobile first design principle
- Progressive advancement and graceful degradation
• Comprehensive widget set means rapid application development
- Over 40 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, Bootstrap and JQuery.
ArcGIS Runtime SDKsSupporting Native App Development
• Supports 6 platforms
- Android, iOS, macOS, Linux, Universal Windows Platform and Windows
• 5 APIs
- .Net, Android, iOS, Java and Qt
• Allows you to 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/
29
30
11/18/2019
16
ArcGIS Runtime SDKsWhy Build a Native App?
• Only native apps can give the best performance
• Fully leverage device capabilities
• Access all peripherals via their native SDKs
• Best debugging experience
• Offline use of ArcGIS
ArcGIS Runtime SDKsAn Architecture Designed to Maximize Performance and Reuse
C++ runtime core
WinLinux OS XAndroid iOS UWP
x86 x64 ARM ARM64x86 x64 ARM ARM64DirectX
OpenGL
OpenGL ES
31
32
11/18/2019
17
ArcGIS Runtime SDKsC++ Core has Advantages
• C++ core and hardware accelerated rendering offer best performance available
• Performance of C++ core is independent from API chosen
• Common conceptual model across all public APIs
• Capabilities the same across all APIs and devices*
• Public APIs can vary to conform to their platform norms
* Dependent on device support
ArcGIS Runtime SDKsWorking with Layers from Services
• Feature layer
• Raster layer
• Map Image Layer
• Scene Layer
• Vector tiles
• OGC services
- WMTS, WMS, KML and WFS
• Rich symbology with smart mapping
• Layers are created from items or in code connecting directly to the service
33
34
11/18/2019
18
ArcGIS Runtime SDKsLayers from Local GIS Data
• Feature Layer with vector data
- Mobile Geodatabase, GeoPackage, Shapefile
- Read and write
• ENC Layer – S57 with S52 symbology
• Raster Layer
- Mosaic dataset, GeoPackage,
- Raster file formats: ASRP/USRP, CRF, DTED,
GeoTIFF/TIFF, HFA, HRE, IMG, JPEG, JPEG2000, NITF, PNG, RPF, SRTM (HGT), USGS DEM
- Apply raster renderers and raster functions
• KML Layer
- Full OGC KML 2.2 + extensions
- Read and Write*
• Mobile Map Packages
• Mobile Scene Packages
• Scene Layer Packages
• Vector Tile Basemaps
ArcGIS Runtime SDKsWorking with Maps
• Working with maps
- Maps are a central API component
- Build a Map, display it in a MapView
- Maps are created from items or code
• Platform sharing of maps and layers
- Share & consume maps from Portal, ArcGIS Pro or other apps
- Share maps and layers in Mobile Map Packages
• Offline maps and layers
- Take maps and layers offline using on-demand or pre-planned workflows
35
36
11/18/2019
19
ArcGIS Runtime SDKs
Offline Mapping Workflows
• Build everything up in code and raw data on the device
+ Provides most flexibility and data type options
- Development intensive and less flexibility after deployment
• Author Maps and Scenes in ArcGIS Pro and share via Packages
+ Productive authoring experience with advanced cartographic options
- Read only maps and data
• Author map for use within Online or Enterprise and take offline using on-demand workflow
+ Productive authoring experience with little overhead to support offline use
+ Supports data editing with sync
- Must consider performance impacts when there are a large number of field users
• Author map for use within Online or Enterprise and take offline using on pre-planned workflow
+ Productive authoring experience with a small amount of upfront cost for defining offline areas
+ Supports data editing with sync
± Field areas are restricted to admin selected areas
ArcGIS Runtime SDKsWorking with 3D Content
• High performance on Desktops, laptops and mobile devices
• All 2D layers work in 3D
• Specific 3D layers for 3D content
- Terrain
- 3D features
- Models
- Integrated meshes
- Point clouds
• Interactive analysis tools
- Viewshed
- Line of sight
- Measure
37
38
11/18/2019
20
ArcGIS Runtime SDKsAnalysis
• Works with services
- Geoproessing
- Network analyst
• Local Engines
- Geometry
- Projection
- Network
• Interactive 3D Analysis
ArcGIS Runtime SDKsUltimate Performance
• Device capabilities continue to grow
• Harnessing this power is critical for tomorrows Apps
• Runtime core brings it all together
- Display
- Data access
- Analytics
• Apps that use large data volumes updating in real-time are now possible
39
40
11/18/2019
21
ArcGIS Runtime SDKsExtended Reality
• Developers want to use their authoritative GIS content and analytics across the mixed
reality spectrum
• Critical needs for usability
- Virtual reality needs high fidelity and responsive performance
- Augmented reality needs positional accuracy
Physical
Reality
Digital
Reality
Mixed Reality
Presence Immersive
Augmented RealityiOS and Android
• Just released into production!
• AR capabilities delivered as
- Capabilities exposed in the Runtime APIs
- Open source toolkits to work with hardware
• Supported use cases
- Fly over: Education
- Table top: Design
- World scale: Inspection
41
42
11/18/2019
22
Navigation
• Voice guidance, auto re-route
• Use your own data or enhance ours
• No connection needed
ArcGIS RuntimeLocal Server
• Local server is a ‘mini’ ArcGIS server dedicated to one client App
• Supports Windows and Linux desktops
• Support for ArcGIS Desktop and ArcGIS Pro packages
• For advanced analytical workflows
• Useful when integrating with ArcGIS Desktop workflows
• Independent SDK
- Works with .NET, Java and Qt SDKs
43
44
11/18/2019
23
ArcGIS Python APIA Whole New Way to Experience and Leverage ArcGIS
• Analytics - Data Science
• Scripting and Automation
• System Administration
Command Line
Scripts JupyterNotebooks
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?
45
46
11/18/2019
24
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
47
48
11/18/2019
25
Spatial Analysis,
Geocoding, Geoenrichment
Raster Analytics & Image Processing,
Geoanalytics(Distributed Computing, Big Data)
Notebook Server
Where is the Analysis Done?
DevOps with Chef and the Python API
• The lifecycle of the Web GIS from deployment to exploitation and growth
• Chef recipes for installing and administering ArcGIS Enterprise
• Python API used to manage users and content
Automation is no longer an option – it’s critical
Deploying your Web GIS
Expanding your Web GIS
Individuals
Teams
Departments
Organizations
Harnessing your Web GIS
49
50
11/18/2019
26
Automate your ArcGIS Enterprise deployments…
Automation for DevOps
ChefInfrastructure as Code
Enterprise Builder
For GIS Professionals
Cloud Builder CLI & Cloud Formation Templates
Cloud Builder &PowerShell DSC
Machine images, advanced cloud deployment options
AWS Azure
Automate your ArcGIS Online and ArcGIS Enterprise workflows…
Create, manage, monitor your organization
Org Administration
Your modern GIS, automated by the ArcGIS API for Python
AnalyticsMapping &
Visualization
Field
Mobility
MonitoringData
Management
Decision
Support
Design &
Planning
Sharing &
Collaboration
Constituent
Engagement
Connect to and integrate with
external systems
EnterpriseIntegration
51
52
11/18/2019
27
Automating Your WebGIS
• Many aspects of your WebGIS can be animated, not just the system setup
• Python API has access to the full GeoInformation model
- Data
- Maps and Layers
- Users and Groups
- Organization
• Many possibilities to automate
Extension SDKs
53
54
11/18/2019
28
ArcGIS Extending SDKs
• 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 available for extending ArcMap based functionality
ArcGIS ProCustomizing and Extending ArcGIS Pro
• Configure UI through settings and workflows through tasks
• Automate using geoprocessing and Python
• Extend with your own custom tools and solutions using the Pro SDK for Microsoft .NET
55
56
11/18/2019
29
ArcGIS Pro .NET SDK Customizing and Extending ArcGIS Pro
• Modern framework design specifically to support customization
• Microsoft .NET – using Visual Studio
• Two extensibility patterns supported with SDK:
- Add-Ins – Develop tools and new functionality, and customize UI
- Solution Configurations – Deeper customization, branding, start-up experience, streamline UI
ArcGIS Pro .NET SDKCustomizing the UI with Add-ins
• Easy to share and install
• Deployed as a single zipfile package, with .esriAddInX extension
• Can be secured and licensed
57
58
11/18/2019
30
ArcGIS Pro SDK for .NETTaking Control with Solution Configurations
• Includes all functionality of an add-in plus
- Change the application title and icon
- Change the application splash screen, start page, and about page
- Conditional customization of the UI
• Packaged within a single, compressed file with a .ProConfigX file extension
- Built in a similar way to an add-in
- Default install location in a dedicated folder with standard add-ins
What can you do with the Pro SDK?
• Framework – customize the Pro UI and manage the ribbon with context, extend with
solution configurations
• Content – manage Pro project items and connections to Portal to consume and integrate
online data
• Editing – develop powerful editing tools and create and manage editing operations
• Geodatabase – access file and enterprise datasets, and manage queries, searches and
selections, as well as versions
• Geometry – build and manage feature geometries and perform spatial operations
• Geoprocessing – run geoprocessing tools and python scripts from add-in tools and
routines
59
60
11/18/2019
31
What can you do with the Pro SDK?
• Layouts – build custom layouts and elements, manage layout views and selections
• Map Authoring – author maps, manage layers, define and set layer renderers
• Map Exploration – build and manage animations, control the camera and build new map
tools
• Raster – work with raster datasets, layers and colorizers
• Sharing – access and search content, folders, and groups of a portal or online organization
• Tasks – access and manage Tasks within the UI
• Utility Network – create custom utility network tools, traces and workflows
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
• Build artifacts
- No need to have other ArcGIS software installed on developer or build machines
61
62
11/18/2019
32
Server Object ExtensionsBasics
• Server-side code
• Attaches to Feature or Image services
• Creates a custom API for the server
- Needs custom applications to use it
• Managed lifecycle
- No additional hardware needed to deploy
- No need to worry about authentication and authorization
- One instance of your object per instance of the service
Server Object ExtensionsArchitecture
GIS Server
Feature Service
Image Service
Well-defined API
SOE
SOE
Custom API
Custom applicationsOut-of-box applications
63
64
11/18/2019
33
Server Object InterceptorsBasics
• Server-side code
• Filters requests to Feature or Image services
• No change in API
- Existing applications are unaware
• Two or more can form an ordered chain
• Managed lifecycle
- No additional hardware needed to deploy
- No need to worry about authentication and authorization
GIS Server
Feature Service
Image Service
Well-defined API
SOI
SOI
Server Object InterceptorsArchitecture
Out-of-box applications
65
66
11/18/2019
34
GIS Server
ArcSOC
Feature Service
Web
HandlerSOI 1 SOI 2
Server Object InterceptorsCall sequence
Out-of-box applications
ArcObjects SDKSupporting ArcMap Based Development
• Customizing and Extending ArcMap
• Extending ArcMap based services
- Building Server Object Extensions (SOEs)
- Building Server Object Interceptors (SOIs)
• Supporting VS2015/2017 and .NET 4.5
• ArcObjects continue to be supported
• ArcObjects resources available on GitHub
67
68
11/18/2019
35
ArcGIS Developer
Experience
One More Thing…
69
70
11/18/2019
36
Deploying Your Solution
Deploying REST AppsTechnical and Business Considerations
• Technical
- No technical considerations
• Business
- No cost deployment for internal enterprise apps or public non revenue generating apps
- Revenue generating apps that use ArcGIS Online data or services require a commercial
deployment license
- Credit bearing services require credit plan
71
72
11/18/2019
37
Deploying Apps using JavaScript APITechnical and Business Considerations
• Technical
- JavaScript API hosted by Esri and delivered via CDN
- Use the JavaScript Package Manager npm
- Download the API and host on your own server
• Business
- No cost deployment for internal enterprise apps or public non revenue generating apps
- Revenue generating apps that use ArcGIS Online data or services require a commercial
deployment license
- Credit bearing services require credit plan
Deploying Apps using ArcGIS RuntimeTechnical and Business Considerations
• Technical
- Deploy runtime binaries and supporting resources (runtime core with API) along with your app and
any supporting resources required by your app
- If using Local Server, build and deploy an appropriate Local Server deployment using the tools in
the SDK
• Business
- Revenue generating apps that use ArcGIS Online data or services require a commercial
deployment license
- Review functionality and select license level required
- Chose the appropriate licensing method for your App
- ArcGIS Identity
- Apps that extend or compliment ArcGIS
- Embedded license
- Standalone apps
- Credit bearing services require credit plan
73
74
11/18/2019
38
Deploying Apps using ArcGIS RuntimeLicense Levels
• Lite
- View maps, scenes and layers from the platform, simple routing and place finding
• Basic
- Simple feature editing (connected or disconnected),authoring maps, creating groups and sharing
• Standard
- Local data access and Local Server
• Advanced
- Direct connect to SDE, Mosaic datasets, advanced GP tools
• Analysis Extension
- Available with Standard and Advanced levels
- Spatial, 3D and Network Analysis tools
Deploying Apps using the Python APITechnical and Business Considerations
• Technical
- Python API hosted on Anaconda cloud and Python Package Index (PyPI)
- Install using conda or pip
• Business
- No cost deployment for internal enterprise apps or public non revenue generating apps
- Revenue generating apps that use ArcGIS Online data or services require a commercial deployment
license
- Credit bearing services require credit plan
75
76
11/18/2019
39
Deploying Solutions using ArcGIS Extension SDKsTechnical and Business Considerations
• Technical
- Ensure customer is using appropriate version of ArcGIS
- Consider signing binaries
• Business
- No cost to developer as the end user is responsible for licensing of host environment
ArcGIS for DevelopersA Complete Developer experience
• A comprehensive set of developer APIs and SDKs
• Full set of resources available to support your learning
• Business models covering all deployment options
https://developers.arcgis.com
77
78
11/18/2019
40
79