Represents a map series that may be associated with a layout.
MapSeries_GetSetDefinition
//Get and modify a map series CIM definition and set the changes back to the layout
//Perform on the worker thread
await QueuedTask.Run(() =>
{
MapSeries MS = layout.MapSeries as MapSeries;
CIMMapSeries CIM_MS = MS.GetDefinition();
CIM_MS.Enabled = false;
MS.SetDefinition(CIM_MS);
layout.SetMapSeries(MS);
});
Modify an existing map series
//Modify the currently active map series and changes its sort field and page number field.
//Perform on the worker thread
await QueuedTask.Run(() =>
{
SpatialMapSeries SMS = layout.MapSeries as SpatialMapSeries; //cast as spatial map series for additional members
SMS.SortField = "State_Name";
SMS.SortAscending = true;
SMS.PageNumberField = "PageNum";
//Overwrite the current map series with these new settings
layout.SetMapSeries(SMS);
});
Create a new spatial map series
// This example create a new spatial map series and then applies it to the active layout. This will automatically
// overwrite an existing map series if one is already present.
//Reference map frame and index layer
MapFrame mf = layout.FindElement("Map Frame") as MapFrame;
Map m = mf.Map;
BasicFeatureLayer indexLyr = m.FindLayers("Countries").FirstOrDefault() as BasicFeatureLayer;
//Construct map series on worker thread
await QueuedTask.Run(() =>
{
//SpatialMapSeries constructor - required parameters
SpatialMapSeries SMS = MapSeries.CreateSpatialMapSeries(layout, mf, indexLyr, "Name");
//Set optional, non-default values
SMS.CategoryField = "Continent";
SMS.SortField = "Population";
SMS.ExtentOptions = ExtentFitType.BestFit;
SMS.MarginType = ArcGIS.Core.CIM.UnitType.PageUnits;
SMS.MarginUnits = ArcGIS.Core.Geometry.LinearUnit.Centimeters;
SMS.Margin = 1;
SMS.ScaleRounding = 1000;
layout.SetMapSeries(SMS); //Overwrite existing map series.
});
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.