上一篇中只能添加代码中指定的shp文件(最简单的ArcGIS Engine应用程序(上)

为了让用户可以浏览磁盘加载指定的shp文件,需做一下调整。

从工具箱往窗体上添加一个OpenFileDialog控件。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Carto; namespace SimpleArcEngineDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void menuAddShp_Click(object sender, EventArgs e)
{
//步骤1: 创建工作空间工厂。
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory(); //文件过滤器, 选择后缀名为.shp
openFileDialog1.Filter = "ShapeFile文件(*.shp)|*.shp"; //设定文件对话框的初始路径
openFileDialog1.InitialDirectory = @"D:\data"; //示例数据文件夹
openFileDialog1.Multiselect = false; //不允许多选
DialogResult dialogResult = openFileDialog1.ShowDialog();//打开对话框
if (dialogResult != DialogResult.OK)
{
return; //用户没有选择时返回
}
//得到文件名对应的路径、文件夹名等
string pPath = openFileDialog1.FileName; //得到完整的路径(路径+文件名)
string pFolder = Path.GetDirectoryName(pPath); //得到文件的路径(不包括文件名)
string pFileName = Path.GetFileName(pPath); //得到文件的文件名 //步骤2: 打开ShapeFile文件名对应的工作空间。
IWorkspace pWorkspace1 = pWorkspaceFactory.OpenFromFile(pFolder, ); //数据目录
IFeatureWorkspace pFeatureWorkspce = pWorkspace1 as IFeatureWorkspace; //将工作空间强转成要素工作空间 //步骤3: 打开要素类。
IFeatureClass pFC = pFeatureWorkspce.OpenFeatureClass(pFileName); //步骤4: 创建要素类图层。
IFeatureLayer pFLayer = new FeatureLayerClass();
pFLayer.FeatureClass = pFC;
pFLayer.Name = pFC.AliasName; //步骤5: 关联图层和要素类。
ILayer pLayer = pFLayer as ILayer;
IMap pMap = axMapControl1.Map; //步骤6: 添加到地图控件中。
pMap.AddLayer(pLayer);
axMapControl1.ActiveView.Refresh(); }
}
}

简述:

单机“添加shp”,会弹出一个打开文件的对话框,浏览目录后选中任意一个shp文件,单机确定,即可将指定的shp文件加载到地图控件当中。

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

最新文章

  1. java设计模式(六)--观察者模式
  2. C#报错:创建调试信息文件 ……obj\Debug\model.pdb: 拒绝访问
  3. Python学习总结3:元组、列表的操作汇总
  4. [转载]Spring Bean Configuration Inheritance
  5. CSS3动画与过渡
  6. rtsp转发服务器设计
  7. C语言使用正则表达式
  8. POJ 3061 Subsequence(Two Pointers)
  9. PAT (Advanced Level) 1053. Path of Equal Weight (30)
  10. Mapreduce 反向索引
  11. arcgis_server_address_note
  12. 博客已经迁移到 http://imbotao.top 也会同步到这儿
  13. spot 状压dp
  14. Kubernetes国内镜像、下载安装包和拉取gcr.io镜像
  15. org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: c
  16. 【发布iCore3&iCore4ADM资料】
  17. STL容器之vector
  18. 【python36--对象】
  19. Windows10系统的Linux子系统中安装MySQL数据库心得
  20. INSTALL_FAILED_USER_RESTRICTED

热门文章

  1. webview与webApp页面交互传参
  2. Fire Balls 11——平台组合,场景的美化
  3. 一次误用CSRedisCore引发的redis故障排除经历
  4. TCP/IP协议,TCP与平台通信,通讯协议压力测试(python)
  5. MapReduce应用案例
  6. 重学Java(一):与《Java编程思想》的不解之缘
  7. CSS精灵图合成工具
  8. C#面试题目整理(一)
  9. net core WebApi——缓存神器Redis
  10. jvm对象内存分配