ArcGIS二次开发基础教程(03):保存文档和导出地图

ArcGIS二次开发基础教程(03):保存文档和导出地图ArcGIS二次开发基础教程(03):保存文档和导出地图保存文档保存://这里的path为全局变量在打开文件获添加数据时赋值原路径//判断打开文件是否为mxd文件是则保存不是则另存为if(System.IO.File.Exists(path.Remove(path.IndexOf(‘.’))+”.mxd”)){//对于已打开的mxd文档保存在原路径//…

大家好,又见面了,我是你们的朋友全栈君。

ArcGIS二次开发基础教程(03):保存文档和导出地图

保存文档

  1. 保存:
//这里的path为全局变量 在打开文件获添加数据时赋值原路径
//判断打开文件是否为mxd文件 是则保存 不是则另存为
if(System.IO.File.Exists(path.Remove(path.IndexOf('.')) + ".mxd"))
{
    //对于已打开的mxd文档保存在原路径
    //获取mapcontrol中的地图数据
	IMXDContexts context = axMapControl.Map as IMXDContexts;
	IMapDocument mapDocumnet = new MapDocumnetClass();
	mapDocument.Open(path);
	mapDocument.ReplaceContexts(context);
	mapDocument.Save();
}
else
{
    SaveAs();
}
  1. 另存为
void SaveAs()
{
    //没有mxd文档的新建一个
	saveFileDialog.Title = "保存文件";
	saveFileDialog.Filter = "ArcMap Document(*.mxd)|*.mxd";
	if(saveFileDialog.ShowDialog()==DialogResult.OK)
	{
		IMXDContexts context = axMapControl.Map as IMXDContexts;
		IMapDocument mapDocumnet = new MapDocumnetClass();
		mapDocument.New(path);
		mapDocument.ReplaceContexts(context);
		mapDocument.Save();
	}
}

导出地图

//将mapcontrol的显示范围导出为图片
saveFileDialog.Title = "导出图片";
//还有其他图片格式同理
saveFileDialog.Filter = "JPEG(*.jpg)|*.jpg|PNG(*.png)|*.png|PDF(*.pdf)|*.pdf|BMP(*.bmp)|*.bmp|TIFF(*.tif)|*.tif";
if(saveFileDialog.ShowDialog()==DialogResult.OK)
{
    IExport export = new ExportAllClass();
    string path = saveFileDialog.FileName;
    string extension = System.IO.Path.GetExtenion(path).Replace(".","").ToLower();
    switch(extension)
    {
        case "jpg":
            export = new ExportJPEGClass();
            break;
        case "png":
            export = new ExportPNGClass();
            break;
        case "pdf":
            export = new ExportPDFClass();
            break;
        case "bmp":
            export = new ExportBMPClass();
            break;
        case "tif":
            export = new ExportTIFFClass();
            break;
        default:
            MessageBox.Show("Error");
            return;
    }
    if(ExportImage(export,axMapConrol1.ActiveView,fileName))
    {
        MessageBox.Show("Succeed");
    }
    else
    {
        MessageBox.Show("Error");
    }
}
//这里是参考的帮助文档
bool ExportImage(IExport export,IActiveView activeView,string fileName)
{
  export.ExportFileName = fileName;

  // Microsoft Windows default DPI resolution
  export.Resolution = 96;
  // mapcontrol的显示范围
  tagRECT exportRECT = activeView.ExportFrame;
  IEnvelope envelope = new EnvelopeClass();
  envelope.PutCoords(exportRECT.left, exportRECT.top, exportRECT.right, exportRECT.bottom);
  export.PixelBounds = envelope;
  Int32 hDC = export.StartExporting();
  activeView.Output(hDC, (Int16)export.Resolution, ref exportRECT, null, null);

  // Finish writing the export file and cleanup any intermediate files
  export.FinishExporting();
  export.Cleanup();

  return true;
}

历届GIS应用技能大赛开发题答案点这里,尚在不定期更新中

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163431.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 矩阵乘以其矩阵转置

    矩阵乘以其矩阵转置在推导公式和计算中,常常能碰到矩阵乘以其矩阵转置,在此做个总结。1.假设矩阵A是一个m∗nm∗nm*n矩阵,那么A∗ATA∗ATA*A^T得到一个m∗mm∗mm*m矩阵,AT∗AAT∗AA^T*A得到一个n∗nn∗nn*n的矩阵,这样我们就能得到一个方矩阵。看一个例子:Xθ=HXθ=HX\theta=H求解θθ\theta.XTXθ=XTHXTXθ=XT…

    2022年6月30日
    57
  • java 时序图

    java 时序图UML 时序图 又叫序列图或者顺序图 是一种用来描述对象之间传送消息的时间顺序 是用来表示用例中的行为顺序 UML 时序图最基本的符号即含义 1 对象 表示系统的参与者或者任何有效的系统对象 2 生命线 相当于一个时间线 表示对象在一段时间内的存在时间 而且从时序图的顶部一直延伸至底部 长度取决于交互的时间 3 消息 是用来表示一个对象向其他一个或者多个对象发送信号 或者由

    2025年10月12日
    3
  • excel截取中间字符串函数_java截取指定字符串

    excel截取中间字符串函数_java截取指定字符串应用场景办公过程中需要使用某一单元格内的特定部分,因此需要对字符串进行截取操作。例如单元格内容是这样的:AAA\aaa我们需要的内容是这样的:aaaExcel实现函数部分如下:=RIGHT(A1,LEN(A1)-FIND(“\”,A1,1))==========================================================个人能力有限,如有谬误欢迎指正!…

    2025年6月15日
    4
  • 给一组数据 怎么用matlab花折线图,matlab 画折线图 实例「建议收藏」

    给一组数据 怎么用matlab花折线图,matlab 画折线图 实例「建议收藏」数据:某地区近50年雷暴发生次数(1957~2006雷暴日):画如下的年际变化图。———————————————————————————%将数据载入数组a中a=[…..(省略)];x=1957:2006;x=x’;%ma中放平均值:ma=zeros(50,1)+mean(a);p…

    2022年5月23日
    37
  • 如何用SVN版本控制器将提交的文件还原到以前的版本

    如何用SVN版本控制器将提交的文件还原到以前的版本

    2021年9月19日
    58
  • SpringBoot整合微信登录

    SpringBoot整合微信登录文章目录 SpringBoot 整合微信登录 1 准备工作 1 1 获取微信登录凭证 1 2 配置文件 1 3 添加依赖 1 4 创建读取公共常量的工具类 1 5HttpClient 工具类 2 实现微信登录 2 1 具体流程 2 2 生成微信扫描的二维码 请求 CODE 2 3 回调 SpringBoot 整合微信登录 1 准备工作 1 1 获取微信登录凭证前往官网微信开放平台 com 完成以下步骤 注册邮箱激活完善开发者资料开发者资质认证创建网站应用 1 2 配置文件在配置文件 applicatio

    2026年1月20日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号