介绍ArcGIS中各种数据的打开方法——mxd(地图文档)
1、加载地图文档
在ArcGIS中,以mxd作为扩展名的文件叫地图文档。
地图文档中只是包含图层的引用,即存储当前地图的图层路径、符号、状态、修饰等信息,并不存储真实的数据层。
ArcGIS Map中,图层(Layer)是地图(Map)的基本组成单位。图层可以是要素图层,也可以是栅格图层。要素图层有点、线、面3种显示不同类型要素类的图层,也有专题图层,如显示拓扑检查结果的图层、网络分析结果图层等;栅格图层是航片、遥感影像、数字高程模型、普通图片等。
介绍两种打开mxd文件的方法
方法一:运用LoadMxFile方法的函数参数加载地图文档
地图文档的加载功能将用到MapControl控件提供的LoadMxFile方法。
//三个参数(filePath——文件路径、0——地址名称或索引、Type.Missing——通过反射进行调用获取参数的默认值)
axMapControl1.LoadMxFile(filePath, , Type.Missing);
该方法通过指定的*.mxd文档路径直接获取。
该方法第一个参数是文件的路径,第二个参数是mxd文档中地图的名称或者索引,第三个参数是打开地图文档的密码。
方法二:运用MapDocument对象中的Open方法的函数加载mxd文档
//filePath——地图文档的路径, ""——赋予默认密码
mapDocument.Open(filePath, "");
通过MapDocument对象对地图文档的地图逐个加载,MapDocument提供了Open方法,用于打开一个地图文档文
件,该方法的第一个参数为地图文档文件的路径,第二个参数为密码。
核心代码:
#region 加载mxd地图文档
private void 加载mxd地图文档toolStripLabel1_Click(object sender, EventArgs e)
{
//方法一:
//loadMapDoc1();//调用MapControl控件的LoadMxFile方法 //方法二:
loadMapDoc2();
}
/// <summary>
/// 方法二:运用MapDocument对象中的Open方法的函数加载mxd文档
/// </summary>
private void loadMapDoc2()
{
IMapDocument mapDocument = new MapDocumentClass();
try
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开地图文档";
ofd.Filter = "map documents(*.mxd)|*.mxd";
if(ofd.ShowDialog()==DialogResult.OK)
{
string pFileName = ofd.FileName;
//filePath——地图文档的路径, ""——赋予默认密码
mapDocument.Open(pFileName, "");
for (int i = ; i < mapDocument.MapCount; i++)
{
//通过get_Map(i)方法逐个加载
axMapControl1.Map = mapDocument.get_Map(i);
}
axMapControl1.Refresh();
}
else
{
mapDocument = null;
}
}
catch(Exception e)
{
MessageBox.Show(e.ToString());
} } /// <summary>
/// 方法一:运用LoadMxFile方法的函数参数加载地图文档
/// </summary>
private void loadMapAccDoc1()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开地图文档";
ofd.Filter = "map documents(*.mxd)|*.mxd";
ofd.InitialDirectory = m_Path;
//判断, 如果对话框结构不为OK, 退出函数体
DialogResult DR = ofd.ShowDialog();
if (DR != DialogResult.OK)
return;
string filePath = ofd.FileName;
if (axMapControl1.CheckMxFile(filePath))
{
//设置axMapControl控制鼠标指针图标选项为沙漏光标
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerArrowHourglass;
//三个参数(filePath——文件路径、0——地址名称或索引、Type.Missing——通过反射进行调用获取参数的默认值)
axMapControl1.LoadMxFile(filePath, , Type.Missing);
//定义axMapControl控制鼠标指针图标为默认箭头
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
axMapControl1.Extent = axMapControl1.FullExtent;
}
else
{
MessageBox.Show(filePath + "不是有效的地图文档");
}
}
#endregion
谢谢观看!本人初学GIS二次开发,如果有不对的地方,请多多包涵!
介绍ArcGIS中各种数据的打开方法——mxd(地图文档)的更多相关文章
- 介绍ArcGIS中各种数据的打开方法——mdb(个人数据库)
3.打开存储在Access GeoDatabase的要素类 使用工作空间打开一个Access库中的一个要素类. private void OpenWorkspaceFromFileAccess(str ...
- 介绍ArcGIS中各种数据的打开方法——tin(栅格文件)
4.加载栅格文件 栅格数据是GIS中重要的数据源之一,如卫星图像.扫描的地图.照片等. 栅格数据常见的格式有Bmp.Tiff.Jpg.Grid等. 添加栅格数据主要使用Rasterlayer 组件类, ...
- 介绍ArcGIS中各种数据的打开方法——shp(矢量文件)
2.加载shp文件到地图控件 ShapeFile是一种矢量数据模型的计算机数据组织文件,用于在计算机上表达矢量数据的计算机文件. 加载ShapeFile文件最主要是:axMapControll控件对象 ...
- PatentTips - 在物联网中进行数据过滤的方法和装置
背景技术 [0001] 本发明涉及物联网,特别涉及在物联网进行数据过滤的方法和装置. [0002] 物联网是新一代信息技术的重要组成部分,特指物物相连的网络.具体地,物联网是指通过各种信息传感设备,如 ...
- excel中的数据导入oracle方法
SQL_loader批量上传数据 1. 注释 在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE表中.如果是小数据量,如几十条至几百条,那么用plsql dev工具 ...
- ArcGIS中的数据连接问题——数据类型不统一
博主在研究空间数据分布的时候经常会用到 ArcGIS 进行空间数据可视化.但是有时候会由于数据类型不统一而无法将 csv 中的数据连接到底图上.比如在底图中的数据是字符串格式,而 csv 中是数字格式 ...
- 归纳从文件中读取数据的六种方法-JAVA IO基础总结第2篇
在上一篇文章中,我为大家介绍了<5种创建文件并写入文件数据的方法>,本节我们为大家来介绍6种从文件中读取数据的方法. 另外为了方便大家理解,我为这一篇文章录制了对应的视频:总结java从文 ...
- 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
提醒大家,Object.prototype.toString().call(param)返回的[object class]中class首字母是大写,像JSON这种甚至都是大写,所以,大家判断的时候可以 ...
- 将mat文件中的数据按要求保存到txt文档中(批处理)
之前有个老朋友,让帮忙将一个mat中的数据重新保存到txt中,由于数据比较多需要用到批处理,之前弄过很多次,但每次一到要用的时候总是忘记怎么写了,现在记录一下,免得后面老是需要上网搜.这里先说一个比较 ...
随机推荐
- ios 各个手机型号尺寸及分辨率适配
常用宏 // 判断是否是ipad #define isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdio ...
- Mysql高手系列 - 第11篇:深入了解连接查询及原理
这是Mysql系列第11篇. 环境:mysql5.7.25,cmd命令中进行演示. 当我们查询的数据来源于多张表的时候,我们需要用到连接查询,连接查询使用率非常高,希望大家都务必掌握. 本文内容 笛卡 ...
- ADC0832
#include <reg51.h> #include "ADC0832.c" code uchar seven_seg[]={0xc0, 0xf9, 0xa4, 0x ...
- 你好,C语言
对于我来说,C语言就和陌生人一样,对他完全不了解,更不要提什么C++了,这就要我主动和他打招呼,深入认识了解它了哈.目前对于C语言的理解,只知道他的的功强大,能操作硬件,编写各类驱动,强悍的LINUX ...
- MYSQL之概念基础篇
1数据库概述 1.1 数据管理技术的产生和发展 数据库技术是应数据库管理任务的需要而产生的.20世纪50年代中期以前,计算机主要是用于科学计算.当时的硬件状况是,外存只有纸带.卡片.磁带,没有磁盘等可 ...
- JQuery对于动态生成的标签绑定事件失效
JQuery对整个html文档进行dom操作后,我们要想动态绑定事件,有两种方法 1.在进行dom操作时,在标签中写上onclick="afun()" 2.利用document的操 ...
- BeanFactory not initialized or already closed
产生这个错误有两个可能, 一.你没有配置初始化文件,在web.xml中配置如下 <context-param> <param-name>contextConfigLocatio ...
- Android Studio [跑马灯]
MainActivity package com.xdw.secondapp; import android.graphics.Paint; import android.support.v7.app ...
- 读《深入理解Elasticsearch》点滴-查询分类
1.如何分类,略.个人不接受书中的分类方法,建议采用官网上的分类方法 2.term查询,可以模拟No-SQL数据库
- springboot 集成Redis一主二从三哨兵
1.Centos7 Redis一主二从三哨兵配置 Redis一主二从三哨兵环境搭建 2.接入过程 与集成redis单机不同的是jedis相关的配置做了修改,JedisPool换成了JedisSenti ...