This document is archived and information here might be outdated.  Recommended version.


Limitations for dynamic display (ArcObjects .NET 10.5 SDK)

Limitations for dynamic display


Summary
This topic discusses restrictions when using dynamic display.

In this topic


About limitations for dynamic display

There are a number of things to be aware of when using dynamic display and situations where dynamic display is not the best solution to obtain the best performance. In these situations, turn dynamic display off before proceeding. These situations include labeling, editing, using the graphic or ink tools, and printing.

Labels

Do not use labels with dynamic display. Labels, in general, are not designed for performance and do not function well in a dynamic display application. Each time a label is drawn, that label's placement is determined based on the rules specified in the label's class and its spatial relationship with other labels and features on the map. Based on these factors, the label is placed in the best location it can find to minimize conflicts. This processing takes time and can significantly slow down overall drawing performance. 
In Dynamic Display mode, vector data is cached by converting the data to 256 x 256 pixel textures or tiles that are rendered together. Before ArcGIS 10, if a labeled feature spanned multiple tiles, a label would display in each tile; therefore, many labels for one feature will be seen. Labels are cut off on custom layers that do not return the correct extent.
The labeling functionality has changed starting at ArcGIS 10 in respect to dynamic display.  Labels are no longer calculated for each tile. Instead, labels are calculated for the whole extent for the data, just as in standard display, and drawn on their own outside of individual layer caches. Labels are not drawn until the map is idle for a short period of time. Thus, labels are not displayed when panning or zooming. Even with this change, avoid labels whenever possible for the reasons previously described. If your map has a lot of labels and/or complex labeling, you might notice a slight pause in the display after panning or zooming while the label engine processes label placement.   
Convert labels to Geodatabase Annotation, which are treated like feature layers and cached by dynamic display. Do not convert the labels to Map Annotation, because Map Annotation is stored in the map as graphics and suffers from the limitations as all graphics do.
  • Labels from MapServer layers will be slow when in dynamic mode.

Editing

Edits will not show on the screen when dynamic display is enabled. Do not edit your static data in dynamic display mode because this requires you to invalidate your cache and the cache to rebuild, which takes time. Dynamic display is not hooked up to the editor by design, and the cache will not update automatically. It is up to you, the developer, to tell dynamic display that its cache needs updating after you modify the underlying data. 

Graphics

Do not use graphics in dynamic display mode. Before ArcGIS 10, graphics drawn in the graphics container would essentially be cached as if it was its own layer. If you were to add a text element to the graphics container, the text would become cached like any other vector layer, and be drawn at various levels of detail (LOD). This causes the text to not behave like fonts. Instead, it behaves more like a raster image and changes size as you zoom in and out.
Starting at ArcGIS 10, graphics in the graphics container are no longer cached, but drawn with labels. This removes certain scale related problems with graphics, but just as labels, the graphics will not draw while panning and zooming.
If graphics are necessary for the application, consider using the GraphicTracker. Graphics in the GraphicTracker will not disappear when panning and zooming in Dynamic Display mode. For more information, see Using a GraphicTracker

Graphic tools

When drawing graphics, the graphics and movements, such as bring to front, nudges, and rotations disappear until dynamic display is turned off. When dynamic display is enabled again, the graphic appears; however, once it is displayed, selection handles around a selected graphic will not display.

Ink and tablet tools

Sketches made by ink or tablet tools disappear until dynamic display is turned off. Once dynamic display is enabled again, parts of the sketches might be missing.

Data frame tools

Data frame tools, such as the Viewer and Magnifier windows do not show dynamic content.

Effects tools

Effects tools, such as Swipe and Flicker become disabled while dynamic display is enabled.

Publisher tools

A map can be published using the publishing tools but dynamic content will not show on the published map.

Printing

Dynamic layers will not display in print preview, page layout, or paper output. Custom layers that contain dynamic items will print if the dynamic items are drawn in non-dynamic mode.

Symbols

The following restrictions on glyphs and polygons apply: 
  • Drawing polygons with multiple rings through the map or screen is not supported. When drawing shapes, only simple polygons and polylines constructed from a list of points using the IPointsCollection interface are supported. For example, if a complex shape has only two points returned from its IPointCollection interface, then drawing a polyline using that shape results in drawing one line between those two points.

Sharpness

Sharpness of some static datasets might be lost when dynamic display is enabled. Dynamic display sacrifices cartographic quality for performance. What you see in standard display is not necessarily what you will get when you enable dynamic display. Keep this in mind when you are designing your maps for dynamic display. The display quality of the cached data can be controlled to some degree by using IDynamicCacheLayerManager. For example, the DetailsThreshold property gives you some control over which LOD is being used at any given scale. By adjusting this value, you can control when a more detailed LOD is used over a courser one. Once dynamic display is disabled, the original sharpness of the data is restored.    

Consolidated layers

Consolidate your layers in group layers. This improves caching performance of your static layers. Caches are created on a layer by layer bases. If you combine layers into group layers, this reduces the number of caches that will be created, and a single cache will be created for all the layers in the group layer.
Do not use consolidated group layers if the underlying data changes during application runtime. If sub-layers are expected to change, or turned on or off independently, those layers should be unconsolidated.
When using consolidated sub-layers, rendering might not be aligned with the minimum and maximum scale of the sub-layer, since the actual source scale that is being used for rendering the current scale, is snapped to a discrete predefined scale. Also, a consolidated sub-layer might not be aligned with the visibility state of the sub-layer in the table of contents (TOC). If you require that your sub-layer scale to adhere to your minimum and maximum visibility settings and/or your current layer visibility settings in the TOC, you can un-consolidate the relevant sub-layers.
Remember, every non-consolidated layer that is added, consumes more memory and rendering resources.
When a map service is in a group layer, this group layer will not be consolidated, even if this setting has been changed through IDynamicCacheLayerManager. This is to prevent services from caching themselves.   

Basemap layers  

Basemap layers are not supported in dynamic display mode. Any Basemap layers within the map when dynamic display is enabled, convert into a group layer.  

Display

What you see using the standard display is not necessarily what you will see in dynamic display, in particular, converting ArcGIS symbols to dynamic glyphs. Certain symbols might not translate correctly in Dynamic Display mode. This is done to maximize performance. A prime example of this is a dashed cartographic line. 
In standard display, you can specify the lines caps, how joins draw, how the line repeats, at what interval it repeats, and how joined lines are drawn. These effects might not get translated exactly when converting the symbol to a glyph. To display the same symbol on a dynamic layer, dynamic display first creates a glyph out of the symbol, then repeats this glyph along the geometry of the symbol that displays. 
To understand how this works, imagine drawing the line symbol, then taking a 3 by 5 foot photograph of the symbol and placing this image along the line. When it does not fit, it must be cut to fit. If the geometry of the line changes drastically, you might see a slight offset or gap in the line. This is an oversimplification of what is actually happening, but hopefully gives some insight into why your symbols don't look exactly the same. This is by design for performance reasons. Some of this can be controlled through IDynamicSymbolProperties2; however, if more control is needed, consider using OpenGL directly to do the drawing. 

Hardware requirements

32-bit color depth display is a requirement for using dynamic display; otherwise, you might encounter strange behavior, such as missing vector layers, weird colors, and dual monitor issues.
Content outside a circular map extent, such as when using myMapControl->put_VisibleRegion(), which calls the Win32 API SetWindowRgn(), does not function in an OpenGL window. The area outside the map extent shows as black.
Dynamic display is built on OpenGL and is highly dependant on your display hardware. When using dynamic display, make sure your video card supports OpenGL 2.0. Certain display drivers that are installed with your operating system (OS) are generic and not designed by the manufacturer of your card. These drivers might not fully support all OpenGL implementations and functionality. To ensure that dynamic display functions correctly on your system, download the latest driver directly from the manufacturer of the video card.
Due to the strict hardware dependency, dynamic display is not supported through Remote Desktop, Citrix, or on Virtual Machines. This is because these solutions virtualizes the display, and can cause unexpected behavior when working with OpenGL. Also, disable Windows Aero, as this display can cause problems with some aspects of the ArcGIS display. 

Animation

Dynamic display is not intended for creating animations. Animations that are created while dynamic display is enabled, result in a blank video.

Military Analyst

Do not use Military Analyst Vector Product Format (VPF) layers  in dynamic display. 


See Also:

Dynamic display
Best practices for using dynamic display
Persisting cache information for use in dynamic display
Rendering dynamic map content




Development licensing Deployment licensing
Engine Developer Kit Engine
ArcGIS for Desktop Basic
ArcGIS for Desktop Standard
ArcGIS for Desktop Advanced