世界杯加纳

介绍ArcGIS中各种数据的打开方法——mxd(地图文档)

1、加载地图文档

在ArcGIS中,以mxd作为扩展名的文件叫地图文档。

地图文档中只是包含图层的引用,即存储当前地图的图层路径、符号、状态、修饰等信息,并不存储真实的数据层。

ArcGIS Map中,图层(Layer)是地图(Map)的基本组成单位。图层可以是要素图层,也可以是栅格图层。要素图层有点、线、面3种显示不同类型要素类的图层,也有专题图层,如显示拓扑检查结果的图层、网络分析结果图层等;栅格图层是航片、遥感影像、数字高程模型、普通图片等。

介绍两种打开mxd文件的方法

方法一:运用LoadMxFile方法的函数参数加载地图文档

地图文档的加载功能将用到MapControl控件提供的LoadMxFile方法。

//三个参数(filePath——文件路径、0——地址名称或索引、Type.Missing——通过反射进行调用获取参数的默认值)

axMapControl1.LoadMxFile(filePath, 0, 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();

}

///

/// 方法二:运用MapDocument对象中的Open方法的函数加载mxd文档

///

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 = 0; 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());

}

}

///

/// 方法一:运用LoadMxFile方法的函数参数加载地图文档

///

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, 0, Type.Missing);

//定义axMapControl控制鼠标指针图标为默认箭头

axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;

axMapControl1.Extent = axMapControl1.FullExtent;

}

else

{

MessageBox.Show(filePath + "不是有效的地图文档");

}

}

#endregion

谢谢观看!本人初学GIS二次开发,如果有不对的地方,请多多包涵!