因为我们组的项目要通过截图获取数据,所以要经常使用截图工具,之前截图都是根据教程(https://www.cnblogs.com/PIESat/p/10243308.html)用的地图显示范围截图,而用地图显示范围截图有一个很大的缺陷,那就是它只能获取设备的框架(dT.DeviceFrame),也就是mapcontrol的整个范围。有时候你想要截图的范围并不是整个界面,所以这样就很不方便,这里把技术员小姐姐教我的方法介绍给大家,这个方法能截出自定义的范围,达到自己想要的效果:

                //获取截取影像的范围
IEnvelope envelopshp = new Envelope();
envelopshp = feature.envelop;
//实例化输出png对象,并设置输出属性
PIE.Carto.ExportPNG export = new PIE.Carto.ExportPNG(); //确定导出png的宽度和高度
export.Width = ; //(int)dT.DeviceFrame.Width; 自由设置
export.Height = ;//(int)dT.DeviceFrame.Height; 自由设置
// 创建一个矩形区域,将矩形范围设置为截图范围
RectangleF rectangle = new RectangleF((float)envelopshp.XMin, (float)envelopshp.YMax, , ); //png导出
export.ExportFileName = PNGpath;
export.StartExporting();
//根据矩形范围来截取
MC_cut2.ActiveView.Output(export as PIE.Carto.IExport, , rectangle, envelopshp, null); //空间释放
export.FinishExporting();
((IDisposable)export).Dispose();
export = null;

这就是通过一个矩形区域存入截图范围,且利用矩形区域截图的过程,这样就用不用把截图范围局限在mapcontrol整个界面了,最后一定要记得释放空间,要有释放空间的好习惯,这样不仅更加规范,而且也不会影响后续的处理。

至于如何将截图数据转换为GeoTiff,关键在于两个地方,一就是要有截图的四至坐标,二就是根据栅格的读取(https://www.cnblogs.com/PIESat/p/10169156.html),利用截图的四至坐标进行六参数转换,从而读为GeoTiff。

PIE截图方法的优化的更多相关文章

  1. python web自动化测试中失败截图方法汇总

    在使用web自动化测试中,用例失败则自动截图的网上也有,但实际能落地的却没看到,现总结在在实际应用中失败截图的几种方法: 一.使用unittest框架截图方法:   1.在tearDown中写入截图的 ...

  2. SCRUM,一个采用迭代,增量方法来优化可预见控制风险

    Scrum是一个用于开发和维持复杂产品的框架,是一个增量的,迭代的开发过程.在这个框架中,整个开发过程是由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到 ...

  3. Spark程序运行常见错误解决方法以及优化

    转载自:http://bigdata.51cto.com/art/201704/536499.htm Spark程序运行常见错误解决方法以及优化 task倾斜原因比较多,网络io,cpu,mem都有可 ...

  4. Unity3d之截图方法

    http://blog.csdn.net/highning0007/article/details/37991787 Unity3d之截图方法 分类: Unity3D2013-11-28 17:13  ...

  5. MySQL大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化   ---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适 ...

  6. RF实现多次失败重跑结果合并的基础方法和优化方法

    实现思路:通过分次执行失败案例重跑,然后通过结果文件合并命令实现多次失败重跑结果文件的合并,并输出合并后的log和report文件: 说明:具体失败案例重跑命令和结果文件合并命令请参考本博客其他相关章 ...

  7. selenium-java,UI自动化截图方法

    截图方法: import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; impor ...

  8. C#截图操作(几种截图方法)

    公共函数获取屏幕截图private Bitmap GetScreenCapture(){ Rectangle tScreenRect = new Rectangle(0, 0, Screen.Prim ...

  9. Java&Selenium截图方法封装

    Java&Selenium截图方法封装 package util; import org.apache.commons.io.FileUtils; import org.openqa.sele ...

随机推荐

  1. 关于微信开发者工具创建项目和导入项目半天不响应或者socket hang out

    笔者的电脑系统是macOS Catalina(10.15),其实之前的系统版本也遇到一样的问题,网络环境是学校实验室. 解决办法:连接手机Wi-Fi 原理:目前不清楚,清楚的小伙伴可在下方留言交流

  2. POJ 1321 棋盘问题 题解

    棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70224 Accepted: 33254 Description 在一 ...

  3. csp 201409-3 字符串匹配

    问题描述: 很简单,判断给定串是否在目标串中出现.分区分大小写和不区分大小写两种情况. csp特点: csp的第三题一般是字符串的处理,c++的string类虽然不好用,但是掌握的话在考试的时候可能能 ...

  4. day34_8_16 MySQL数据库一

    一.数据库概念 在没有数据库时,编写项目都是使用db模拟数据库.将文件以列表或字典等存入文件夹. 但是,不同的程序员存放数据的方式都是各不相同的,而且摆放的位置都是不一样的. 如何同一数据格式,和如何 ...

  5. [RN] React-Native中Array渲染的优化

    React-Native中Array渲染的优化 例如用Push加进去的数据: constructor(props){    super(props);    this.state = {      b ...

  6. CSP-S考前救急(考试前还是别复习了,事实证明复习了也没考到...

    “不要为明天而忧虑,因为明天自有明天的忧虑:一天的难处一天当就够了.” 念念不忘,必有回响. 考试结束前15分钟停止写代码.然后按照以下顺序进行检查: -检查文件名是否写错-检查是否打开文件输入输出 ...

  7. java 声明并初始化字符串变量

    public class Sample { public static void main(String[] args) { String str = "Hello world"; ...

  8. Salesforce 版本控制 - VS Code + GitHub + Salesforce

    使用VS Code开发Salesforce有个很好的地方是可以联接GitHub进行代码版本控制,点击查看使用VS Code开发SalesForce 第一步:安装GIthub Desktop Githu ...

  9. SpringBoot集成Spring Security(6)——登录管理

    文章目录 一.自定义认证成功.失败处理 1.1 CustomAuthenticationSuccessHandler 1.2 CustomAuthenticationFailureHandler 1. ...

  10. SqlServer 通过日志恢复数据库

    前期工作 查看数据属性,确保下条件: 1.数据库属性->选项->恢复模式=完整 2.建好库以后.一个数据库完整的数据备份 3.到出事期间日志没有你间断 4.记录出事的准确时间 一.数据准备 ...