各位看官老爷们,本文主要介绍二种读取mxt文件的方法(与读取mxd文档的方法高度相似)。方法如下,
方法1:
IMapDocument接口不仅可以对mxd文件(地图文档)进行操作,对待mxt文件(地图模板)同样如此:

OpenFileDialog open = new OpenFileDialog();open.Filter = "制图模板(*.mxt)|*.mxt";open.Title = "选择制图模板";open.CheckFileExists = true;open.CheckPathExists = true;if (open.ShowDialog() == DialogResult.OK){IMapDocument pMapDocument = new MapDocumentClass();pMapDocument.Open(open.FileName);//读取模板IPageLayout pPageLayout;pPageLayout = pMapDocument.PageLayout;axPageLayoutControl1.PageLayout = pPageLayout;axPageLayoutControl1.Refresh();}
//缺点:会覆盖掉原有的全部要素

鉴于和mxd文档操作有很高的重合性,利用IMapDocument应该也可以对mxt文档做另存、新建、保存等操作,下面是对mxd文档的操作,有兴趣的看官们可以参照着自己试试对mxt文件进行相关的操作

//实现地图文档操作OpenFileDialog open = new OpenFileDialog();SaveFileDialog save = new SaveFileDialog();open.Filter = "地图文档文件(*.mxd)|*.mxd";save.Filter = "地图文档文件(*.mxd)|*.mxd";string strDocFile = string.Empty;IMapDocument pMapDocument = new MapDocumentClass();//IMapDocument接口:对地图文档进行新建、打开、保存、另存操作switch (StrOperType){case "NewDoc":{//新建一个地图文档save.Title = "输入需要新建地图文档的名字";save.ShowDialog();strDocFile = save.FileName;if (strDocFile == string.Empty)return;pMapDocument.New(strDocFile);pMapDocument.Open(strDocFile, "");axMapControl1.Map = pMapDocument.get_Map(0);break;}case "OpenDoc":{open.Title = "选择需要加载的地图文档文件";open.ShowDialog();strDocFile = open.FileName;if (strDocFile == string.Empty)return;//将数据加载入pMapDocument并与map控件联系起来pMapDocument.Open(strDocFile, "");for (int i = 0; i < pMapDocument.MapCount; i++){axMapControl1.Map = pMapDocument.get_Map(i);}axMapControl1.Refresh();break;}case "SaveDoc":{//判断文档是否为只读文档if (pMapDocument.get_IsReadOnly(pMapDocument.DocumentFilename) ==
true){MessageBox.Show("此地图为只读文档!", "信息提示");return;}//用相对路径保存地图文档pMapDocument.Save(pMapDocument.UsesRelativePaths, true);MessageBox.Show("保存成功!", "信息提示");break;}case "SaveDocAs":{save.Title = "地图文档另存";save.ShowDialog();strDocFile = save.FileName;if (strDocFile == string.Empty)return;if (strDocFile == pMapDocument.DocumentFilename)//所选路径是否与地图原文件路径一致{//将修改后的地图文档保存在源文件中//用相对路径保存地图文档pMapDocument.Save(pMapDocument.UsesRelativePaths, true);MessageBox.Show("保存成功", "信息提示");return;}else{//将修改后的地图文档保存为新文档pMapDocument.SaveAs(strDocFile, true, true);MessageBox.Show("保存成功", "信息提示");}                  break;}default:break;}

方法2:
与方法1类似,咱们直接说不同点
1、加载方式不同(mxd也有这种加载方式)
2、图层、图例、比例尺等会重新显示出来

OpenFileDialog open = new OpenFileDialog();open.Filter = "制图模板(*.mxt)|*.mxt";open.Title = "制图模板";open.CheckFileExists = true;open.CheckPathExists = true;if (open.ShowDialog() == DialogResult.OK){string fileName=open.FileName;if (fileName == string.Empty)return;IElement element_Legend =
axPageLayoutControl1.FindElementByName("Legend");IElement element_Scalebar =
axPageLayoutControl1.FindElementByName("ScaleBar");IElement element_NorthArrow =
axPageLayoutControl1.FindElementByName("MarkerNorthArrow");List<ILayer> layerlist = new List<ILayer>();//保存图层for (int i = 0; i < axPageLayoutControl1.ActiveView.FocusMap.LayerCount;
i++){layerlist.Add(axPageLayoutControl1.ActiveView.FocusMap.get_Layer(i));}//更新模板axPageLayoutControl1.GraphicsContainer.DeleteAllElements();axPageLayoutControl1.LoadMxFile(fileName);//加载原来图层for (int i = 0; i < layerlist.Count; i++)axPageLayoutControl1.ActiveView.FocusMap.AddLayer(layerlist[i]);if (element_Legend != null)axPageLayoutControl1.GraphicsContainer.AddElement(element_Legend,0);if (element_NorthArrow != null)axPageLayoutControl1.GraphicsContainer.AddElement(element_NorthArrow,
0);if (element_Scalebar != null)axPageLayoutControl1.GraphicsContainer.AddElement(element_Scalebar,
0);axPageLayoutControl1.Refresh();}

重要的事

重要的事

重要的事

各位看官老爷们,我已经说三遍了,接下来看问题
我现在有个问题是:用C#+ArcEngine制图怎样实现如图效果,使得我移动小方块(红色标记的那些小方块)能改变元素的形状?有想法的请私信哦!!! 谢谢大家啦

C#+ArcEngine加载mxt地图模板文件相关推荐

  1. 优化加载百度地图中的各种省份的js文件

    背景 项目中需要用到百度地图,这里还包括了所有省份的js文件,如果在最开始的位置就匆匆引入的话那会是这样: <script src="./js/province/anhui.js&qu ...

  2. wordpress home.php,WordPress主题通过function.php来加载js和css文件

    WordPress主题开发的时候可以直接将需要的js或css写在head标签中,但是现在已经不主张这种加载方式了,现在WordPress主题通过function.php来加载js和css文件. 基本架 ...

  3. ios 高德地图加载瓦片地图_OpenLayers加载高德地图离线瓦片地图

    谷歌地球离线瓦片下载使用"迈高图-地图数据下载器"(以下简称:迈高图),演示数据以湖南省长沙市7~16级瓦片数据为例. 下载演示数据 迈高图选择谷歌地球为当前地图源,地图图层选择为 ...

  4. echarts asp mysql 源码_如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)...

    ECharts地图主要用于地理区域数据的可视化,展示不同区域的数据分布信息.ECharts官网提供了中国地图.世界地图等地图数据下载,通过js引入或异步加载json文件的形式调用地图. 本文将结合实例 ...

  5. Qt加载百度地图和谷歌地图

    Qt中加载网页,需要用到这个QWebView这个类,就可以将网页加载出来. 首先,使用Qt时,现在Qt的*.pro文件中加上这一句QT   +=  webkit 然后需要包含这个头文件 #includ ...

  6. vue openlayers 加载高德地图等 gcj02 的图层偏移问题

    vue openlayers 加载高德地图等 gcj02 的图层偏移问题 这个问题是在使用 openlayers 地图引擎加载高德地图或者是谷歌地图都会遇到的问题,所以说呢这篇博文稍微说一下解决办法. ...

  7. Android加载百度地图

                   1.第一步:项目中添加lib文件夹,放入百度相关jar包,如下图 第二步:编写布局文件 <?xml version="1.0" encoding ...

  8. web端加载百度地图和天地图

    1.加载百度地图 在页面中引入js文件 <html> <head> <script type="text/javascript" src=" ...

  9. 微信小程序加载百度地图

    1:申请百度地图服务的ak,(个人感觉浏览器和小程序类型没区别,甚至浏览器比小程序更好) 2:配置地图服务,微信小程序开发平台,设置开发设置 3:小程序里添加地图服务的js文件bmap-wx.min. ...

最新文章

  1. boost::fusion::front_extended_deque用法的测试程序
  2. 数列分块入门 (1 ~ 7)
  3. 35 FI配置-财务会计-应收账款和应付账款-为客户定义备选统驭科目
  4. light_oj 1236 求最小公倍数( lcm(a,b) )等于n的数对 素因数分解
  5. 2015 ACM Syrian Collegiate Programming Contest
  6. java命令行参数args_Args4J (Java 命令行参数控制开源项目) 使用指南
  7. 网站未备案不能访问,怎么用ip加端口的方式建站?
  8. Spring IOC(依赖注入的三种方式)
  9. Vue3+ts+vite 国际化处理
  10. 黑苹果日记六(双系统引导)
  11. 抖音海外版tiktok404 amp; 简洁国际版apk
  12. 敏捷史话(一):用一半的时间做两倍的事——Scrum之父Jeff Sutherland的传奇人生
  13. android电视APP开机自启动,安卓电视、机顶盒如何开机自动启动看电视直播-今日头条...
  14. svn: E155019: Can't upgrade as it is not a pre-1.7 work解决办法
  15. 【python-opencv】灰度图和彩色图的互相转换
  16. 无法运行rc.exe(已解决)
  17. C语言数据结构一元多项式
  18. 计算机专业如何写毕业论文-八大技巧
  19. 跨越2009之华为总裁任正非
  20. php 拼音首字母大写字母,获取汉字拼音首字母大写

热门文章

  1. 闷棍暴打面试官 Spring源码系列: (一) Spring 如何解决循环依赖
  2. ETest—中国人自己的LabView
  3. keepalived脑裂!
  4. YottaChain芝麻云服务器打造的区块链存储公链
  5. win10开机进入桌面不停加载闪动,任务栏和桌面图标消失
  6. C++简明教程,看这一篇就够了!
  7. 遮挡剔除 2021-07-04
  8. 科技新品 | 佳能多款数码复合机;索泰科技显卡和迷你电脑新成员;莱维特立体声麦克风组...
  9. 神经肽He-LWamide II、198995-08-3、Lys-Pro-Pro-Gly-Leu-Trp-NH2
  10. java下载文件excel格式错乱,excel获取文件表格数据格式化-excel表格里的文件突然格式全部乱了,怎么恢复?...