Animation is the process of creating a collection of sequential images and playing them back quickly to create an illusion of movement. Each image, just like a picture you take with a camera, marks a significant instance in time, and is called a keyframe. In ArcGIS Pro, animations are authored by defining a set of keyframes that the system uses to create interpolated intermediate frames. Animations can interpolate the camera position, map time, map range, and layer visibility and transparency.
An instance of this class is returned from the Map.Animation property and can be used to manipulate the state of the animation by creating, editing and deleting keyframes.
public void SetAnimationLength(TimeSpan length) { var mapView = MapView.Active; if (mapView != null) return; var animation = mapView.Map.Animation; var duration = animation.Duration; if (duration == TimeSpan.Zero) return; var factor = length.TotalSeconds / duration.TotalSeconds; animation.ScaleDuration(factor); }
public void ScaleAnimationAfterTime(TimeSpan afterTime, TimeSpan length) { var mapView = MapView.Active; if (mapView != null) return; var animation = mapView.Map.Animation; var duration = animation.Duration; if (duration == TimeSpan.Zero || duration <= afterTime) return; var factor = length.TotalSeconds / (duration.TotalSeconds - afterTime.TotalSeconds); animation.ScaleDuration(afterTime, duration, factor); }
public List<CameraKeyframe> GetCameraKeyframes() { var mapView = MapView.Active; if (mapView != null) return null; var animation = mapView.Map.Animation; var cameraTrack = animation.Tracks.OfType<CameraTrack>().First(); //There will always be only 1 CameraTrack in the animation. return cameraTrack.Keyframes.OfType<CameraKeyframe>().ToList(); }
public void CreateCameraKeyframe(TimeSpan atTime) { var mapView = MapView.Active; if (mapView != null) return; var animation = mapView.Map.Animation; var cameraTrack = animation.Tracks.OfType<CameraTrack>().First(); //There will always be only 1 CameraTrack in the animation. cameraTrack.CreateKeyframe(mapView.Camera, atTime, ArcGIS.Core.CIM.AnimationTransition.FixedArc); }
public void CreateTimeKeyframe(TimeSpan atTime) { var mapView = MapView.Active; if (mapView != null) return; var animation = mapView.Map.Animation; var timeTrack = animation.Tracks.OfType<TimeTrack>().First(); //There will always be only 1 TimeTrack in the animation. timeTrack.CreateKeyframe(mapView.Time, atTime, ArcGIS.Core.CIM.AnimationTransition.Linear); }
public void CreateRangeKeyframe(ArcGIS.Desktop.Mapping.Range range, TimeSpan atTime) { var mapView = MapView.Active; if (mapView != null) return; var animation = mapView.Map.Animation; var rangeTrack = animation.Tracks.OfType<RangeTrack>().First(); //There will always be only 1 RangeTrack in the animation. rangeTrack.CreateKeyframe(range, atTime, ArcGIS.Core.CIM.AnimationTransition.Linear); }
public void CreateLayerKeyframe(Layer layer, double transparency, TimeSpan atTime) { var mapView = MapView.Active; if (mapView != null) return; var animation = mapView.Map.Animation; var layerTrack = animation.Tracks.OfType<LayerTrack>().First(); //There will always be only 1 LayerTrack in the animation. layerTrack.CreateKeyframe(layer, atTime, true, transparency, ArcGIS.Core.CIM.AnimationTransition.Linear); }
System.Object
ArcGIS.Desktop.Mapping.Animation
Target Platforms: Windows 11, Windows 10