37
Qt – Developing ArcGIS Runtime Applications Eric Bader @ECBader

Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

  • Upload
    others

  • View
    83

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Qt – Developing ArcGIS Runtime Applications

Eric Bader @ECBader

Page 2: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Agenda

• Getting Started • Creating the Map • Geocoding and Routing • Geoprocessing • Message Processing • Working Offline • The Next Release • What’s Coming

Page 3: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

ArcGIS Runtime

• Family of SDKs for multiple platforms - Consistent capabilities

• Native to the platform - For building great apps

• Lightweight and fast • Powerful • Easy

Page 4: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Part of the ArcGIS enterprise system • ArcGIS Online / Portal

- Maps, services, content and Organization branding

• ArcGIS for Desktop - Packages

• ArcGIS for Server - Services

Page 5: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Runtime Architecture

Qt Android

WPF

iOS

Java SE

OS X

.NET 10.2.2 Beta

C++ runtime core

x86 x64 ARM

Win Linux OS X Android iOS WinRT

DirectX OpenGL

Page 6: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Qt Enables Cross-Platform Development

• Cross-platform libraries • High-level abstractions Easy

• Write once, run anywhere • Builds as native C++ Portable

• Pre-built platforms • Source code Open

Page 7: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Deep Functionality

Page 8: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Esri UC2013 . Technical Workshop .

Getting Started

Demo

Page 9: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Platform Support ArcGIS Runtime SDK for Qt

• Operating Systems (development and deployment) - Windows 7, 8, 8.1 Server 2008 and 2012 - Red Hat 6.2 - Ubuntu 12.04

• Windows SDK: 64-bit only (32-bit coming 2014)

• Linux : 64-bit and 32-bit

Page 10: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Getting Started

• Get Qt SDK - 5.1.1 minimum.

• Get Qt Creator - Version 2.7.x or higher

recommended (VS 2012 also supported)

http://developers.arcgis.com/qt/

Page 11: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Licensing Model @ 10.2

Development: - Get a free developer subscription: developers.arcgis.com - Download and install SDK - Get free SDK authorization code from developers.arcgis.com - Build! Notice: EDN subscription is not required

Deployment: 2 levels of licensing: - Basic (free) and Standard (purchase deployment packs) - Contact Customer Service for license strings - Compile license into your app.

Page 12: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Hierarchy of Map Layers

• Layers are added bottom-to-top

• Graphics layers: live / temporary data: - Vehicles, people, events

• Operational layers: dynamic features

- Facilities, buildings, zones, networks

• Basemap layer: spatial context - Imagery, topography

Page 13: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Provisioning Content

• Online Services accessed via a URL - Tiled layer, Features, Geoprocessing, Geocoding

• Local Content authored as packages and installed locally - Map Packages: Editing, querying - Tile Packages: High performance base layer - Geoprocessing Packages: Models and Scripts - Geocoding Packages

Page 14: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Esri UC2013 . Technical Workshop .

Geocoding

Demo

Page 15: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Geocoding and Routing use a Task-Based Framework

• Workflow - Construct a task object - Provide parameters - Connect slots for completion signals - Execute task ( for geocoding, Locator::find() ) - Grab results in slot when task completes

• Other Runtime tasks - Query & identify features - Find closest facility or service area (network

analysis)

Page 16: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Esri UC2013 . Technical Workshop .

Routing

Demo

Page 17: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Geoprocessing

Page 18: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Geoprocessing

• Geoprocessing is the source of advanced GIS analysis in the ArcGIS Runtime - Functionality that goes beyond the Runtime API

• Connected - ArcGIS Server’s and ArcGIS Online’s Published

Services • Disconnected

- Local geoprocessing from Geoprocessing Packages (GPKs)

Page 19: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Message Processor

• Displays command and control symbols - Message communicates

a symbol’s type, location - MP displays the symbol on

a special graphics layer • Works with standard symbol dictionaries

- MIL-STD-2525C, App6B • Makes it easy to display these symbols

Drawing is from MIL-STD-2525C dated 11/17/2008

Page 20: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Using the Message Processor

• Create MessageGroupLayer, add to map • Get MessageProcessor that was created within the MessageGroupLayer

• For each message received from outside source - Construct Message object from message content - Pass Message to the MessageProcessor - MessageProcessor adds / updates / deletes

symbol in MessageGroupLayer

Page 21: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Esri UC2013 . Technical Workshop .

Message Processing and Geoprocessing

Demo

Page 22: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Working Offline

Page 23: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Offline ArcGIS

• All Runtime SDKs - Licensing - “Standard” level functionality

• Disconnected use of the ArcGIS platform - Viewing/interacting with maps - Querying data - Find places and locations - Get directions - Editing features

- Synchronization with service

Page 24: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

DEMO…

• Editing • Geocoding • Routing • Tile Cache

Qt - Developing Applications

Page 25: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

From ArcGIS Online and Portal

Author Map

Prepare

View Query

Analyze Edit

Synchronize

Download

Page 26: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

From Desktop

Author Map

Deploy

View Query

Analyze Edit

Check In

Prepare

Page 27: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

getFeatures(x,y,tol) selectFeatures() get/setRenderer()

add() / update() / delete() queryFeatures()

generateGeodatabase() syncGeodatabase()

get templates() / types() getFields() getRelationShips() getAttachments()

Uses Features

Uses Graphics

getGeodatabaseTables() hasLocalEdits()

Uses Graphics

Add to map

Feature

Feature

geometry() attributes() symbol()

mode (snapshot/ondemand) applyFeatureEdits() applyAttachmentEdits()

Page 28: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

generateTileCache()

LODs()

createOnlineLocator() createLocalLocator() geocode() reverseGeocode()

createOnlineRouteTask() createLocalRouteTask() solve()

Take basemaps offline

Offline geocoding

Offline routing

Page 29: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Offline Geodatabase Editing

• Add a feature to the database

Page 30: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Syncing your Geodatabase Edits

• Prepare SyncGeodatabaseParameters: - Can you update? - Can you edit? - Upload only? Bidirectional?

• Call submitSyncJobAnd ApplyResults on the GeodatabaseTask

Page 31: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

What's coming in Runtime

Page 32: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

10.2.2 release – End of March 2014

• Offline API is completed • Improved Licensing models • Developer productivity • Display improvements

Page 33: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Licensing @ 10.2.2

Development: - Get a free developer subscription: developers.arcgis.com - Download SDK and build - Create a client ID, embed it into your app

Deployment: 2 levels of licensing: - Basic (free) and Standard (purchase, or named user) - Basic app: contains client ID only - Standard app: contains client ID + (license string OR named

user credentials)

Page 34: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

What are we working on? • QML as an API + new platforms • Architecture • Mapping • 3D • Data Formats • Geometries • …more…but I can’t say.

Page 35: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

What’s next - Release Schedule

Spring 2014

ArcGIS “Next”

Release Q4 2013

Summer 2014 Autumn

2014

ArcGIS 10.2.2

ArcGIS 10.2

ArcGIS 10.3

TBD

- Completes Offline - Clean license model - Performance enhancements - Developers site updates

- Direct data access - More scope TBD

Page 36: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development

Thank you!

Questions?

Page 37: Qt – Developing ArcGIS Runtime Applicationsproceedings.esri.com/library/userconf/devsummit-dc14/papers/dsdc_03.pdf · ArcGIS Runtime SDK for Qt • Operating Systems (development