About moving objects
Geographic information system (GIS) applications typically require that real-time data with a frequent refresh rate is conveyed clearly and quickly to users. An object's location, orientation, size, status, and attributes must be updated rapidly without interruption. Such real-time data could be streamed live from a Tracking Server, a Global Positioning System (GPS) connection or a Real Simple Syndication (RSS) feed. Specific needs for real-time tracking of data include emergency response systems, commercial fleet tracking systems, threat detection for defence and intelligence agencies, and satellite tracking systems.
This topic helps you determine the type of display mechanism to use to best serve your end user. The following approaches are recommended for developers:
- Managing graphics with a GraphicTracker
- Using dynamic graphics or a dynamic map layer
- Utilizing the Temporal Feature layer
The following sections provide a brief introduction to these approaches with links to specific topics.
Managing graphics with a GraphicTracker
The GraphicTracker allows developer's to visualize many graphics moving smoothly within a map, dynamic map, or globe. The class simplifies the process of refreshing moving graphics and offers a simple labelling facility. The developer has control over the refresh rate and the ability to suspend any updates if necessary. This is a good option for developers that need to provide a controlled solution in any of the display modes (2D, 3D, or dynamic map). For a detailed description on utilizing the GraphicTracker, see Using a GraphicTracker.
The following are the advantages of using the GraphicTracker:
- Common code is written for 2D, 3D, and dynamic map modes.
- The application programming interface (API) provides simple methods for managing the location, symbology, and labelling of various graphics.
- The GraphicTracker manages the refresh of the display.
- Editing, printing, and the use of ink tools are possible with this option.
Using dynamic display
The dynamic display API allows developers to optimize their 2D ArcGIS Engine display for near real-time feeds and tracking of objects. Dynamic display capabilities include moving large numbers of display objects, animations, updating location, orientation, size, status, and attribute information at subsecond refresh rates, while sustaining smooth and uninterrupted navigation and support for GIS data query. The technology moves intensive graphics rendering from the central processing unit (CPU) to the graphics hardware and significantly improves performance. Dynamic display provides a mechanism for synchronized refreshes that allows for many moving objects with high refresh rates.
For this optimization, however, there can be a cost in quality, cartographic sharpness, and sacrifices in functionality. For more information, see Dynamic display.
The following are advantages of using a dynamic map:
- Diverse dynamic labelling of graphics
- Maximizes panning and zooming performance by using previously prepared data
- Utilizes graphic hardware
For the developer, code implementation is more complex than the other two options and the data must be well designed to achieve good performance. For more information on the limitations of a dynamic map, see Limitations for dynamic display. For more information on improving performance, see Maximizing performance in dynamic display.
Utilizing the Temporal Feature layer
The Temporal Feature layer can be used to consume and display real-time data from a Tracking Server or a GPS feed. If the Temporal Feature layer is being fed by a Tracking Server, GIS features are pushed from the Tracking Server to the Temporal Feature layer.
The Temporal Feature layer stores these features in an in-memory database. The Temporal Feature layer re-renders itself once per second by default, but can be configured to render more or less frequently. Layer properties (such as, the field name containing the time stamp) are sent from the Tracking Server as "service properties."
The Temporal Feature layer also contains unique renderers that can change the symbology of features depending on the age of the feature and depending on if the feature represents the current location of an object.
To load temporal layers into a map, the Tracking Analyst extension must be loaded and enabled.
For more information on this connection and display process, see How to connect to ArcGIS Tracking Server. For more information on the display quality, see Displaying time-aware data.
The following are the advantages of using the Temporal Feature layer:
- Responds to selections, identifies operations, and any other map command that works on features
- Has unique time-related rendering capabilities
Summary of features
|
GraphicTracker
|
Dynamic display
|
Temporal layer
|
Standard map
|
√
|
|
√
|
Dynamic map
|
√
|
√
|
√
|
Globe
|
√
|
|
√
|
Displayed as graphics
|
√
|
√
|
|
Displayed as layers
|
|
√
|
√
|
Simple labelling
|
√
|
√
|
√
|
Complex labelling
|
|
√
|
√
|
Displays points
|
√
|
√
|
√
|
Displays lines
|
√
|
√
|
|
Displays polygons
|
√
|
√
|
|
Editing
|
√
|
|
√
|
Printing
|
√
|
|
√
|
Ink
|
√
|
|
√
|
Engine
|
√
|
√
|
√
|
Desktop
|
√
|
|
√
|
Extension required
|
|
|
Tracking Analyst
|
To use the code in this topic, reference the following assemblies in your Visual Studio project. In the code files, you will need using (C#) or Imports (VB .NET) directives for the corresponding namespaces (given in parenthesis below if different from the assembly name):
Development licensing | Deployment licensing |
---|---|
Engine Developer Kit | Engine |
ArcGIS for Desktop Basic | ArcGIS for Desktop Basic |
ArcGIS for Desktop Standard | ArcGIS for Desktop Standard |
ArcGIS for Desktop Advanced | ArcGIS for Desktop Advanced |