【ArcGIS Pro二次开发】(57):地图系列

在ArcGIS Pro中,有一个地图系列,可以在一个布局中导出多个地图。

在SDK中为ArcGIS.Desktop.layout.MapSeries类和映射系列导出选项,可以以支持多页导出。

MapSeries类提供了一个静态CreateSpatialMapSeries方法,该方法使用指定的索引层(作为参数传递)为给定布局生成空间地图系列。

使用返回的SpatialMapSeries类实例可以细化地图系列格式选项(范围选项、边距设置等)。

与布局关联的地图系列(如果有)可以从其【layout.MapSeries】属性中访问。


1、创建地图系列

cs 复制代码
  await QueuedTask.Run(() =>
  {
     // 地图系列构造函数【布局,地图,视图图层,名称】
     var SMS = MapSeries.CreateSpatialMapSeries(layout, mapFrame, countiesLayer, "新地图系列");
  
     // SMC参数
     SMS.CategoryField = "State";
     SMS.SortField = "Population";
     SMS.ExtentOptions = ExtentFitType.BestFit;
     SMS.MarginType = ArcGIS.Core.CIM.UnitType.PageUnits;
     SMS.MarginUnits = ArcGIS.Core.Geometry.LinearUnit.Centimeters;
     SMS.Margin = 1;

     // 创建地图系列
     layout.SetMapSeries(SMS);
  });

**2、**导出地图系列

要导出地图系列,可以将MapSeriesExportOptions类与ExportFormat结合使用以创建多页导出。对于PDF和TIFF,可以将地图系列导出为单个文件,每个地图页导出一个,也可以导出为包含所有(指定)地图页的单个多页(或多图像)文件。对于所有其他导出格式,单独的页面将作为单独的文件导出。

下面以导出多页PDF为例:

cs 复制代码
// 将具有多个页面的地图系列从活动布局导出为单个PDF
var layout = LayoutView.Active.Layout;
if (layout == null) return;

// 设置输出路径
var pdf = @"C:\Users\Administrator\Desktop\States.pdf";
if (File.Exists(pdf)) { File.Delete(pdf); }

// 设置导出的PDF图片格式
var exportFormat = new PDFFormat()
{
    OutputFileName = pdf,
    Resolution = 300,
    DoCompressVectorGraphics = true,
    DoEmbedFonts = true,
    HasGeoRefInfo = true,
    ImageCompression = ImageCompression.Adaptive,
    ImageQuality = ImageQuality.Better,
    LayersAndAttributes = LayersAndAttributes.LayersAndAttributes
};

// // 设置地图系列的导出方式
var mapSeriesExportOptions = new MapSeriesExportOptions()
{
    // 导出内容,包括【All, Current, SelectedIndexFeatures】
    ExportPages = ExportPages.Custom,
    CustomPages = "1-3",
    // 导出单个PDF,也可以按名称导出多个PDF
    ExportFileOptions = ExportFileOptions.ExportAsSinglePDF,
};

// 检查路径是否有效,导出PDF
if (exportFormat.ValidateOutputFilePath())
{
    layout.Export(exportFormat, mapSeriesExportOptions);
}
相关推荐
Xin_ye1008613 小时前
第三章:内存泄漏的常见“案发现场”
c#·wpf
吴可可12317 小时前
C#CAD点击计数器实现
c#
心平气和量大福大18 小时前
C#-WPF-UserControl-生命周期(加载 退出)
开发语言·c#·wpf
sunywz18 小时前
【c#】 Web Deploy一键发布,IIS部署全流程
开发语言·前端·c#
非科班Java出身GISer20 小时前
ArcGIS JS 基础教程(21):PointCloudLayer 点云图层
arcgis·arcgis js 点云·arcgis js 点云图层·arcgis 点云图层·arcgis js 加载点云
玖玥拾21 小时前
Unity 3D 笔记(十二)Unity/C# Socket 网络笔记1
网络·unity·c#
暗中讨饭的卫321 小时前
ArcGIS图形缓冲:点要素缓冲出长方形问题干货总结
arcgis
EIP低代码平台21 小时前
EIP低代码平台 - 系统日志
低代码·c#·权限·工作流·netcore
玖玥拾21 小时前
Unity 3D 笔记(十五)Unity/C# Socket 网络笔记4
服务器·网络·unity·c#
EIP低代码平台1 天前
EIP 低代码平台 - 角色维护
低代码·c#·权限·工作流·netcore