Represents an extent of time defined by a start and an end time.
Step forward in time by 1 month
public void StepMapTime()
{
//Get the active view
MapView mapView = MapView.Active;
if (mapView == null)
return;
//Step current map time forward by 1 month
TimeDelta timeDelta = new TimeDelta(1, TimeUnit.Months);
mapView.Time = mapView.Time.Offset(timeDelta);
}
Interpolate Time
public Task<List<TimeRange>> GetInterpolatedMapTimes()
{
//Return the collection representing the map time for each frame in animation.
return QueuedTask.Run(() =>
{
var mapView = MapView.Active;
if (mapView != null || mapView.Animation == null)
return null;
var animation = mapView.Map.Animation;
var timeRanges = new List<TimeRange>();
//We will use ticks here rather than milliseconds to get the highest precision possible.
var ticksPerFrame = Convert.ToInt64(animation.Duration.Ticks / (animation.NumberOfFrames - 1));
for (int i = 0; i < animation.NumberOfFrames; i++)
{
var time = TimeSpan.FromTicks(i * ticksPerFrame);
//Because of rounding for ticks the last calculated time may be greating than the duration.
if (time > animation.Duration)
time = animation.Duration;
timeRanges.Add(mapView.Animation.GetCurrentTimeAtTime(time));
}
return timeRanges;
});
}
System.Object
ArcGIS.Desktop.Mapping.TimeRange
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.