Getting Started with the ArcGIS Runtime SDK for Qt...Getting Started with the ArcGIS Runtime SDK for...
Transcript of Getting Started with the ArcGIS Runtime SDK for Qt...Getting Started with the ArcGIS Runtime SDK for...
Getting Started with theArcGIS Runtime SDK for Qt
with Thomas Dunn and Koushik Hajra
March 8–11, 2016 | Palm Springs, CA
Esri Developer Summit
What if ...?
Agenda for today
▪ Intro to Qt, QML and Runtime
▪ Qt Widgets (C++) development
▪ Qt Quick (QML) development
This is an intro-level tech session
What is Qt?
• Cross-platform libraries• High-level abstractionsEasy
• Write once, run anywhere• Builds as native C++Portable
• Pre-built platforms• Source codeOpen
http://qt.io
Qt Creator
▪ The IDE for Qt development
▪ Use Qt Creator on Linux, OS X or Windows
▪ Qt Creator comes with the Qt SDK from the Qt Company
http://www.qt.io/download/
What is ArcGIS Runtime SDK for Qt?
▪ Build advanced mapping apps for mobile & desktop clients
▪ Build apps that leverage the ArcGIS platform
▪ Build C++ apps for Linux and Windows
▪ Build QML apps for Linux, Windows, Android, iOS and OS X
▪ Build natively on top of Runtime’s C++ core and GPU acceleration
▪ Build apps that are connected to network services or disconnected
Runtime platforms
Qt
OS X
Windows Store
JavaSE
iOS
Android
Windows Phone
Mobile
Desktop
Embedded
.NET
Windows Desktop
Qt
Runtime platforms
QT
OS X
Windows Store
JavaSE
iOS
Android
Windows Phone
Mobile
Desktop
Embedded
.NET
Windows Desktop
http://developers.arcgis.com
How do I install it?
▪ Install the Qt Frameworkfrom the Qt Company – Use the latest version
▪ Log onto ArcGIS Online with your developer account
▪ Download ArcGIS Runtime SDK for Qt
▪ Run the installer and the post installer
Installation tips
Demo
S
Qt Widgets ( C++ )development
Map layers
Layers are added to the map in order, bottom-to-top
Graphics layers: live / temporary data:Vehicles, people, events
Basemap layer: spatial contextImagery, topography
Operational layers: dynamic featuresFacilities, buildings, zones, networks
Where do I get data?
▪ Online Services: access these via a URL– ArcGIS Online: your organizations data or data available to the public
▪ http://services.arcgisonline.com/ArcGIS/rest/services
▪ Local Content: author packages and deploy them with your app– Use a tile package as a high performance base map layer– Query from a local map service build from a map package– Geocode using locator files
Task-based framework for asynchronous operations
1. Construct a task object
2. Provide parameters
3. Connect slots for completion
signals
4. Execute task
5. Grab results in slot when task
completes
Some Runtime tasks:o Locator (geocoding) o Routing o Geoprocessingo Geodatabase synco Findo Queryo Identify featureso Find closest facilityo Calculate service areao Tile cache generation
C++ apps
Demo
Qt Quick ( QML )Development
What is QML?
▪ The language for the Qt Quick product from The Qt Company
▪ A declarative language for building cross-platform apps
▪ Declaring components is similar to writing JSON or CSS
▪ Writing functions with JavaScript
▪ Easy to read, easy to write
▪ Create UI rapidly with animation and prebuilt controls
http://qt.io/qt-quick/
ArcGIS Runtime and QML
▪ Extends QML by adding QML types with ArcGIS Runtime functionality
https://developers.arcgis.com/qt/qml/guide/qml-and-esri-s-qml-api.htm `
QML apps
Demo
Licensing levels
▪ DeveloperAll functionality available while you develop your app (with a developer account)Displays map watermark and debug messages to the console
▪ BasicThe basics for online app development, that is, all functionality except– Offline locators - Offline routing – Offline editing - Local geodatabase sync operations with an upload
▪ StandardAll functionality
https://developers.arcgis.com/qt/qml/guide/license-your-app.htm
Where to from here?
Create a developer accounthttps://developers.arcgis.com/sign-up/
https://developers.arcgis.com/qt/
https://developers.arcgis.com/qt/cpp/sample-code/
https://geonet.esri.com/community/developers/native-app-developers/arcgis-runtime-sdk-for-qt
Samples
Demo
Coming soon in Quartz
▪ QML Map View accessible from C++ API
▪ Samples hosted on GitHub
▪ Support for vector tile layers
▪ Support for 3D scenes
▪ Support for Webmaps
▪ Support for mobile map packages
More info in session The Road Ahead: ArcGIS Runtime
Related sessions
▪ QML and JavaScript for Native App Development– Wednesday 1:00 – 2:00 pm in Smoketree A - E
▪ Advanced topics in Developing ArcGIS Apps with Qt– Thursday 9:00 – 10:00 am in San Jacinto (this room)
▪ Cross-platform UI for C++ Apps using QML at Quartz– Thursday 10:30 – 11:30 am in Demo Theater 3 (Oasis 1)
▪ Cross-platform Native App Development with Qt/QML– Thursday 2:30 – 3:30 pm in Demo Theater 3 (Oasis 1)
▪ The Road Ahead: ArcGIS Runtime– Thursday 5:30 – 6:30 pm in Primrose A
Rate this session at: www.esri.com/RateMyDevSummitSession