出不同格式的图,实例化不同的类即可。例如导出jpg格式的图片的代码如下。
private void Export(string pMxdFilePath, string pResultFolderPath) { //获取参数 string myFileNameWithoutEx = System.IO.Path.GetFileNameWithoutExtension(pMxdFilePath); string myImageFilePath = pResultFolderPath + "\\" + myFileNameWithoutEx + ".jpg"; //打开地图 var myMapDocument = new MapDocumentClass(); myMapDocument.Open(pMxdFilePath); IPage myPage = myMapDocument.PageLayout.Page; myPage.Border = null; var myActiveView = myMapDocument.PageLayout as IActiveView; //得到使用屏幕分辨率的合适尺寸 var mytagRECT2 = new tagRECT { left = 0, top = 0 }; double myRatio = this._Export.Resolution / 96; mytagRECT2.right = Convert.ToInt32(myActiveView.ExportFrame.right * myRatio); mytagRECT2.bottom = Convert.ToInt32(myActiveView.ExportFrame.bottom * myRatio); //设置输出范围 var myEnvelope = new EnvelopeClass(); myEnvelope.PutCoords(mytagRECT2.left, mytagRECT2.top, mytagRECT2.right, mytagRECT2.bottom); this._Export.PixelBounds = myEnvelope; this._Export.ExportFileName = myImageFilePath; //输出 int myHDC = this._Export.StartExporting(); myActiveView.Output(myHDC, Convert.ToInt32(this._Export.Resolution), ref mytagRECT2, null, null); this._Export.FinishExporting(); this._Export.Cleanup(); //清空资源 myMapDocument.Close(); }
如何进行复杂批量出图呢?例如我们有以下需求,我们按天处理了一年的地质灾害风险数据,需要把他们按照指定的格式做成专题图并导出成图片。
1、数据是有底图的,底图可能包含行政区边界、地名、水系、主要道路等。
2、专题图的格式都是一样的,只是需要天当日的实际数据以及日期。
1、根据要求创建一个Mxd文件,把底图数据添加到地图中,并设置好渲染样式等;
3、添加辅助元素,例如标题、日期以及图例等,并且给需要在代码中修改的Element元素命名。
4、获取一年的实际业务数据列表,开始循环处理,循环处理的流程如下。
(1)拷贝模板Mxd文件,并重新命名;
(2)打开拷贝后的mxd文件,找到第一个图层,把数据源替换成目标数据源;
(3)循环所有Element,找到指定名称的Element,把其内容修改成正确日期;
(4)调用导出函数,把当前布局导出成图片;
(5)按照相对路径,保存mxd文件。
标签:string,mytagRECT2,出图,Export,015,._,ArcObject,myMapDocument From: https://www.cnblogs.com/mytudousi/p/16983745.html