ArcEngine开发 - 打开地图读取图层
2024-10-21 11:26:49
地图文档(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
最新文章
- PHP基础 之 基本数据类型练习
- call() 和 apply() ----预定义的函数方法
- 文件“D:\file.txt”正由另一进程使用,因此该进程无法访问该文件。
- redhat或centos关闭防火墙并开启sshd服务
- jekyll bootstrap更改主题theme
- 微信公众平台开发(一)——接入指南(asp.net)
- window对象BOM
- Codeforces 478D Red-Green Towers
- opencv 边缘羽化,边缘过渡
- [PHP]利用MetaWeblog API实现XMLRPC功能
- LINUX 笔记-文件属性相关命令
- CDQ分治 陌上花开(三维偏序)
- WPF学习笔记2
- gem安装redis库时报错
- 【转载】Docker 安装后 报 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 解决办法
- Compare Version Numbers(STRING-TYPE CONVERTION)
- 安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)
- Grid中添加链接,打开选项卡页面
- 【转】php里面也可以使用协程
- [洛谷U62364]三次函数极值
热门文章
- 8.RabbitMQ系列之RPC
- 动词时态=>;3.现在时态和过去时态构成详解
- Istio(十三):Istio项目实际案例——Online Boutique
- linux重置密码
- cameralink base 接口双通道任意图像数据源模拟
- springMVC实现文件的上传和下载
- 第2-3-3章 文件处理策略-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
- hyperworks2021位安装教程
- Go实现常用软件设计模式一:单例模式
- kubeedge架构与核心设计---https://bbs.huaweicloud.com/webinar/100009