A geographic information system (GIS) often requires displaying information with frequent refresh rates to clearly convey geographic information. This information must be rapidly updated without interruption, including animating moving objects, updating the location, orientation, size, status, and attribute information.
The dynamic display strengthens ESRI's comprehensive display capabilities of dynamic maps in ArcObjects, allowing smooth pan, zoom, rotation, navigation and display of dynamic graphics through the use of OpenGL display rendering and fast refresh rate technology. The dynamic display allows the display performance required of real-time applications while using the existing tools and layer functionality of ArcObjects.
Background
Dynamic display is an enhancement to the core capabilities of the map rendering engine to support very active display environments. These new capabilities include numbers of display objects at subsecond refresh rates, and manipulation of the entire display to support smooth panning, zooming, and rotation. This extends the reach of the ArcGIS platform into domains that demand dynamic displays, often on constrained computing platforms (platforms with limited processing and memory). See the following illustration:
Concepts
This section discusses some of the dynamic diplay concepts specific to different types of GIS layers and is intended for those who may not have a foundational understanding of GIS mapping and visualization.
The ArcGIS display subsystem manages displaying and refreshing maps. Unsynchronized display refresh and intensive map rendering can lead to high central processing unit (CPU) usage. The CPU overloading can delay or even prevent display refresh and user interaction with the display. See the following illustration:
The dynamic display technology moves intensive graphics rendering from the 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. See the following illustration:
Architecture
The following are the main ArcObjects interfaces used by the dynamic display:
IDynamicMap—The IDynamicMap interface is used for controlling the dynamic display. The interface is used for enabling and disabling the dynamic display and controlling global properties of the dynamic map. There is a one-to-one correspondence between maps and dynamic maps.
IDynamicLayer—In conjunction with the ILayer and IGeoDataset interfaces, IDynamicLayer provides the mechanism to implement custom layers that draw dynamic content in dynamic mode.
IDynamicGlyph—A dynamic glyph handles the resource needed to be rendered by the dynamic display. This may be a resource for a line, marker, or text. Dynamic glyphs are managed by the dynamic glyph factory.
IDynamicGlyphFactory—The dynamic glyph factory is used to manage dynamic glyphs. Use IDynamicGlyphFactory to get, create, and delete dynamic glyphs. This means that you can use standard ArcObjects symbols, such as character marker symbols, text symbols, image symbols, and so on or use external resources, such as icons and bitmaps. In addition, dynamic glyphs can be created from dynamic glyph groups, which are a mosaic image of several glyphs where each glyph is mapped to a specific location in the mosaic. Using dynamic glyphs from a glyphs group results in better drawing performance since there is only one OpenGL texture created for an entire group. The dynamic display includes an internal default glyphs group; however, you can use your own glyphs group, load them and unload them using the dynamic glyph factory.
IDynamicSymbolProperties—IDynamicSymbolProperties allow you to set various properties of the active symbol, such as color, scale, heading, and glyph. The idea behind the dynamic display is that at any time it has an active symbol for points, lines, and text. Use IDynamicSymbolProperties to control this symbol before drawing it to the map.
IDynamicDisplay—IDynamicDisplay provides the mechanism to draw different geographical geometries on the map, in addition to providing access to the dynamic glyph factory. To draw geographical geometries on the map, you need to use the dynamic display in conjunction with the dynamic symbol properties. Use the dynamic symbol properties to set the dynamic symbol, then use dynamic display to draw the shape.
IDynamicDrawScreen—IDynamicDrawScreen is used to draw geometries on the map using screen coordinates. The dynamic draw screen is used in the same way that dynamic display is used. You should first set the symbol's properties using dynamic symbol properties, then use IDynamicDrawScreen to draw the geometry.
IDynamicCompoundMarker—Use IDynamicCompoundMarker to draw marker symbols with labels (or attributes) surrounding it. IDynamicCompoundMarker allows you to draw both the marker symbol and its attributes at the same call. It allows you to draw from one to 10 attributes around the marker symbol. You can control the offset from the marker to the text.