1.1. 功能简介
地图显示范围截图是将当前地图显示的范围进行输出。输出的 格式是png、bmp,主要思路就是通过IActiveView接口下的Output()方法进行输出
1.2. 功能实现说明
2.1. 实现思路及原理说明
第一步 | 设置图片导出路径 |
第二步 | 设置输出的属性ExportPNG(宽度、高度、导出路径等) |
第三步 | 地图调用OutPut()方法进行输出 |
2.2. 核心接口与方法
接口/类 | 方法/属性 | 说明 |
PIE.Display.IDisplayTransformation | DeviceFrame | 获取或设置设备框架 |
PIE.Carto.ExportPNG | Width | 获取或设置导出的宽度 |
Height | 获取或设置导出的高度 | |
ExportFileName | 设置或获取导出路径 | |
StartExporting | 开始导出 | |
FinishExporting | 结束导出 |
2.3. 示例代码
项目路径 | 百度云盘地址下/PIE示例程序/02.地图操作/04.地显示范围截图 |
数据路径 | 百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif |
视频路径 | 百度云盘地址下/PIE视频教程/02.地图操作/04.地图显示范围截图.avi |
示例代码 | |
1 /// <summary> 2 /// 地图显示范围截图 并将图保存 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void tbn_OutputImg_Click(object sender, EventArgs e) 7 { 8 //1、设置输出的路径 9 SaveFileDialog saveFile = new SaveFileDialog(); 10 saveFile.Filter = "png图(*.png)|*.png|bmp|*.bmp"; 11 saveFile.Title = "截图保存路径"; 12 if (saveFile.ShowDialog() != DialogResult.OK) return; 13 if (string.IsNullOrEmpty(saveFile.FileName)) 14 { 15 MessageBox.Show("文件名不能为空!"); 16 return; 17 } 18 //2、实例化输出png对象,并设置输出属性 19 PIE.Display.IDisplayTransformation dT = mapControlMain.ActiveView.DisplayTransformation; 20 PIE.Carto.ExportPNG export = new PIE.Carto.ExportPNG(); 21 export.Width = (int)dT.DeviceFrame.Width; 22 export.Height = (int)dT.DeviceFrame.Height; 23 export.ExportFileName = saveFile.FileName; 24 export.StartExporting(); 25 mapControlMain.ActiveView.Output(export as PIE.Carto.IExport, 96, dT.DeviceFrame, mapControlMain.ActiveView.Extent, null); 26 export.FinishExporting(); 27 } |
2.4. 示例截图