Skip to content
Dynamic Situational Awareness Qt
Branch: master
Clone or download
ldanzinger and JamesMBallard Release/100.4 (#306)
* adding branch for 100.4

* updating readme

* adding support for mrsid (#286)

* Update Linux base PPI for scaleFactor

* DSA: (#287)

* DSA:

Mitigate the GeoElement base class changes.
Provide helpers and a wrapper class that provide the
now-missing signal on GeoElement.

* DSA:

In order for the destroyed signal to function correctly, set
the parent of the wrapper to be the GeoElement itself.

* DSA:

push up some code review fixes.

* DSA:

The namespace isn't needed here.

* DSA:

Pass the list by const-ref.

* Don't increment the target index if the operational layer is invalid (e.g. a raster or a terrain model) (#289) (#290)

* Use new SelectionProperties API (#291)

* Scale some UI and fix up a layout warning

* Fix compiler warnings: (#293)

- unused this in lambda captures
- unused variables

* initial commit adding KML support to DSA (#294)

* initial commit adding KML support to DSA

* updating icon

* updates from code review

* fixes from code review part 2

* The path has changed slightly. This is needed for the quick-start steps.

* Revert "The path has changed slightly. This is needed for the quick-start steps."

* Update DsaController.cpp (#301)
Latest commit 27f9537 Jan 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Handheld Release/100.4 (#306) Jan 23, 2019
MessageSimulator Release/100.4 (#306) Jan 23, 2019
Shared Release/100.4 (#306) Jan 23, 2019
Vehicle Release/100.4 (#306) Jan 23, 2019
qdoc updating copyrights Apr 26, 2018
.gitignore Add logic to auto-detect and add a local build dependency for the too… Mar 29, 2018 updating copyrights Apr 26, 2018
LICENSE updates from code review from Johnathan Apr 16, 2018 Release/100.4 (#306) Jan 23, 2019


Dynamic Situational Awareness

When the operational landscape changes frequently, then rapid, accurate, purpose-built, mission-focused communication is key to success. This is the working domain of the Dynamic Situational Awareness example app (DSA) built using ArcGIS Runtime. DSA enables physically distributed teams to work as one, maintaining current status on teammates while exploring and illuminating the operational landscape.

DSA is an example app intended and designed for the developer who wants to build their own custom field operation apps. Built using the ArcGIS Runtime SDK for Qt, DSA highlights developer best practices for the specific workflows for in-vehicle (mounted) and field (handheld/dismounted) teams who need to dynamically understand their environment and the situation around them.

The DSA apps do not require access to a server. All the data and processing are on the device itself. Display of each local data source may be toggled on or off. Teammates share information such as own location, observation reports and markup across the peer-to-peer network (UDP). The emphasis is on collaboration with other teammates. These networks are not connected to the Internet, are not high-bandwidth, and are not constantly connected - a situation commonly encountered in field operations. This communication network topology is unlike more traditional ArcGIS Runtime apps that leverage the Internet and web servers for communication or web services for some functionality.

Visit the DSA Example app page for more details.

Quick start

The repo contains Qt projects for dynamic situational awareness applications that can be run from within the Qt Creator IDE.

If you just want to grab the latest code and build the project, these are the quick steps:

  • git clone
  • cd dynamic-situational-awareness-qt
  • git clone
  • cd arcgis-runtime-toolkit-qt
  • Open with Qt Creator, configure the projects and build.

Note: There is a file path length limit when deploying the DSA apps to Android from Windows. The simplest way to workaround this is to shorten the folder name of the "Shadow Build Directory" in the Qt Creator Project settings.


  • ArcGIS Runtime SDK for Qt 100.4
  • Qt SDK 5.9.2 or higher
  • Qt Creator
  • ArcGIS Runtime SDK for Qt C++ Plugin (details)
  • For Windows: Microsoft Visual C++ Compiler 14.0
  • For more information, please visit the System Requirements page.

Setup the ArcGIS Runtime SDK C++ Toolkit as a build dependency.

  • This is an optional step but allows you to build with the latest version of the toolkit
# from the base of the repo
git clone


The DSA app works with offline data. Demo data is available for Monterey, California here. Details for where to place the data are provided in the demo data's description. Alternatively, you can define your own data by modifying the app's configuration file.


Pre-built Apps

The compiled versions of the DSA app are made available for you to conveniently try out the app, and are not officially supported. Please note that these compiled versions of the app should not be used in production environments.


Find a bug or want to request a new feature? Please let us know by submitting an issue.


Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.


Copyright 2018 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's LICENSE file

You can’t perform that action at this time.