Dynamic map event cycle


About dynamic map event cycle

Dynamic map events are fired in the following order:
  1. IDynamicMapEvents.DynamicMapStarted—Called based on the draw rate and before any drawing is done (dynamic display drawing cannot be done).
  2. IDynamicMapEvents.BeforeDynamicDraw (esriDMDPLayers)—Only called if non-dynamic layers need tiles. This event will not be fired again until after all the tiles are available and non-dynamic layers need more tiles.
  3. IDynamicMapEvents.BeforeDynamicDraw (esriDMDPDynamicLayers) —Only called if dynamic layers are dirty and need to be drawn.
  4. IDynamicMapEvents.AfterDynamicDraw (esriDMDPDynamicLayers)—Only called if dynamic layers are dirty and after they have been drawn.
  5. IDynamicMapEvents.AfterDynamicDraw (esriDMDPLayers) —Only called when non-dynamic layers have all the necessary tiles.
  6. IDynamicMapEvents.DynamicMapFinished—Called based on the draw rate and after all drawing is done (dynamic display drawing cannot be done).
To do animation in IDynamicMapEvents, ensure the AfterDynamicDraw event gets fired. This event is fired based on the dynamic map draw rate (IDynamicMap.DynamicDrawRate) and whether or not any of the layers need to be refreshed (both dynamic and non-dynamic layers).
Layers will need to be refreshed as a result of a map action (such as, pan or zoom), the dynamic layer dirty flag being set to true, or non-dynamic layers still needing tiles. However, you can force this event to fire by calling IActiveView.Refresh in the DynamicMapStarted event, DynamicMapFinished event, or your timer.


See Also:

Sample: Dynamic display—tracking dynamic object
Sample: Dynamic biking




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