地图文档(IMapDocument)对象是ArcEngine开发最基本对象,可以说是所有操作的第一步。使用IMapDocument可以检查和打开地图文档,读取图层信息和文档信息,为源GIS并为您详细分析实现方法并提供核心的示例代码。

实现方法

使用IMapDocument接口判断地图文档是否有效(get_IsMapDocument),打开(Open)并返回Map对象,遍历图层(ILayer)并绑定到自定义的控件上;最后将打开的地图显示到axMapControl控件上;使用Close方法关闭地图文档。

通过IDocumentInfo接口也可以获取作者、标题、关键字、主题、备注等信息。

核心代码

// 打开地图读取图层
public void OpenDocMap(TreeView treeView)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.InitialDirectory = Application.StartupPath + "\\地图MXD";
dialog.Filter = "*.mxd|*.mxd";
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string szPath = dialog.FileName; //定义MapDocumentClass
IMapDocument mapDocument = new MapDocumentClass();
if (mapDocument.get_IsMapDocument(szPath))
{
//打开地图
mapDocument.Open(szPath, null);
IMap map; //清除图层树
treeView.Nodes.Clear(); //遍历地图图层
for (int i = 0; i <= mapDocument.MapCount - 1; i++)
{
map = mapDocument.get_Map(i);
TreeNode rootNode = treeView.Nodes.Add(map.Name); IEnumLayer enumLayer = map.get_Layers(null, true);
enumLayer.Reset();
ILayer layer = enumLayer.Next();
while (layer != null)
{
rootNode.Nodes.Add(layer.Name);
layer = enumLayer.Next();
}
} //读取地图文档信息
IDocumentInfo docInfo = mapDocument as IDocumentInfo;
TreeNode node = treeView.Nodes.Add("文档信息:");
node.Nodes.Add("作者:" + docInfo.Author);
node.Nodes.Add("标题:" + docInfo.DocumentTitle);
node.Nodes.Add("关键字:" + docInfo.Keywords);
node.Nodes.Add("主题:" + docInfo.Subject);
node.Nodes.Add("备注:" + docInfo.Comments); treeView.ExpandAll(); //在Map控件中显示地图
axMapControl_Main.Map = mapDocument.get_Map(0);
axMapControl_Main.DocumentFilename = szPath;
} //关闭地图文档
mapDocument.Close();
}
}

技术支持

如果有任何疑问或问题,可联系微信:wygis2022 , 企鹅:1811335143

最新文章

  1. PHP基础 之 基本数据类型练习
  2. call() 和 apply() ----预定义的函数方法
  3. 文件“D:\file.txt”正由另一进程使用,因此该进程无法访问该文件。
  4. redhat或centos关闭防火墙并开启sshd服务
  5. jekyll bootstrap更改主题theme
  6. 微信公众平台开发(一)——接入指南(asp.net)
  7. window对象BOM
  8. Codeforces 478D Red-Green Towers
  9. opencv 边缘羽化,边缘过渡
  10. [PHP]利用MetaWeblog API实现XMLRPC功能
  11. LINUX 笔记-文件属性相关命令
  12. CDQ分治 陌上花开(三维偏序)
  13. WPF学习笔记2
  14. gem安装redis库时报错
  15. 【转载】Docker 安装后 报 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 解决办法
  16. Compare Version Numbers(STRING-TYPE CONVERTION)
  17. 安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)
  18. Grid中添加链接,打开选项卡页面
  19. 【转】php里面也可以使用协程
  20. [洛谷U62364]三次函数极值

热门文章

  1. 8.RabbitMQ系列之RPC
  2. 动词时态=&gt;3.现在时态和过去时态构成详解
  3. Istio(十三):Istio项目实际案例——Online Boutique
  4. linux重置密码
  5. cameralink base 接口双通道任意图像数据源模拟
  6. springMVC实现文件的上传和下载
  7. 第2-3-3章 文件处理策略-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
  8. hyperworks2021位安装教程
  9. Go实现常用软件设计模式一:单例模式
  10. kubeedge架构与核心设计---https://bbs.huaweicloud.com/webinar/100009