ArcGISEngine学习(1)

ArcGIS Engine 数据加载

1.IMapControl接口

1.1思路简介:

(1)使用OpenFileDialog 打开文件对话框,获取打开文件路径。
(2)CheckMxFile(pFileName) 方法检查地图文档是否有效。
(3)LoadMxFile(pFileName) 方法想MapControl控件中加载地图文档。

 private void iMapControl接口ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openfile = new OpenFileDialog();
            openfile.CheckFileExists = true;
            openfile.Title = "打开地图文档";
            openfile.Filter = "(*.mxd)|*.mxd;|(*.mxt)|*.mxt;|(*.pmf)|*.pmf;|(*.mxd;*.mxt;*.pmf)|*.mxd;*.mxt;*.pmf";
            openfile.Multiselect = false;//不允许多选
            openfile.RestoreDirectory = true;//存储打开的文件路径
            if (openfile.ShowDialog() == DialogResult.OK) {
                string FileName = openfile.FileName;
                if (FileName == "") {
                    return;
                }
                if (axMapControl1.CheckMxFile(FileName))
                {
                    axMapControl1.ClearLayers();
                    axMapControl1.LoadMxFile(FileName);

                }
                else {
                    MessageBox.Show(FileName + "无效的地图文档!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }

        }

2.IMapDocument接口

  private void iMapDocument接口ToolStripMenuItem_Click(object sender, EventArgs e)
        {
             OpenFileDialog openfile = new OpenFileDialog();
             openfile.CheckFileExists = true;
             openfile.Title = "打开地图文档";
             openfile.Filter = "(*.mxd)|*.mxd;|(*.mxt)|*.mxt;|(*.pmf)|*.pmf;|(*.mxd;*.mxt;*.pmf)|*.mxd;*.mxt;*.pmf";
             openfile.Multiselect = false;//不允许多选
             openfile.RestoreDirectory = true;//存储打开的文件路径
             if (openfile.ShowDialog() == DialogResult.OK) {
                 string FileName = openfile.FileName;
                 if (FileName == "") {
                     return;
                 }
                 if (axMapControl1.CheckMxFile(FileName))
                 {
                     //using ESRI.ArcGIS.Carto; 添加命名空间 才能使用IMapDocument 
                     IMapDocument mapdocument = new MapDocument();
                     mapdocument.Open(FileName, "");
                     //一个文档对象中可能含有多个Map  通过FocusMap 获得当前Map
                     //IMapDocument 相当于一个数据容器  ActiveView  能够获得数据视图  FocusMap获取数据视图中正在使用的Map
                     axMapControl1.Map = mapdocument.ActiveView.FocusMap;//获取当前正在使用map对象  ActiveView 数据视图
                     axMapControl1.ActiveView.Refresh();

                 }
                 else
                 {
                     MessageBox.Show(FileName + "无效的地图文档!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     return;
                 }
             }

3.加载shapfile数据

  private void 通过工作空间加载ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openfile=new OpenFileDialog();
            openfile.CheckFileExists = true;
            openfile.Title = "打开shapfile文件";
            openfile.Filter = "Shap文件(*.shap)|*.shap";
            openfile.ShowDialog();

            IWorkspaceFactory workspaceFactory;
            IFeatureWorkspace featureworkspace;
            IFeatureLayer featurelayer;

            string filename = openfile.FileName;
            if (filename == "") return;
            int pindex = filename.LastIndexOf("\\");
            string path = filename.Substring(0, pindex);
            string name = filename.Substring(pindex + 1);

            workspaceFactory = new ShapefileWorkspaceFactory();
            featureworkspace = workspaceFactory.OpenFromFile(path, 0) as IFeatureWorkspace;

            IFeatureClass featureclass = featureworkspace.OpenFeatureClass(name);
            featurelayer = new FeatureLayer();
            featurelayer.FeatureClass = featureclass;
            featurelayer.Name = featurelayer.FeatureClass.AliasName;


            axMapControl1.ClearLayers();
            axMapControl1.Map.AddLayer(featurelayer);
            axMapControl1.ActiveView.Refresh();        

        }

3.通过AddShapfile() 加载数据

 private void 加载shaofile文件ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openfile = new OpenFileDialog();
            openfile.Title = "加载shapfile数据";
            openfile.Filter = "(*.shap)|*.shap";
            //如果用户点击OK  则加载数据
            if (openfile.ShowDialog()==DialogResult.OK) {
                string fullpath = openfile.FileName;
                //int index = fullpath.LastIndexOf("\\");
                string path = fullpath.Substring(startIndex:0, length:fullpath.LastIndexOf("\\"));
                string name = fullpath.Substring(fullpath.LastIndexOf("\\") + 1);
                axMapControl1.AddShapeFile(path,name);
                axMapControl1.Refresh();
                MessageBox.Show("文件加载成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值