ArcGIS二次开发基础教程(01):打开mxd文件,添加(.shp),(.lyr),(.mdb),(.tif;.img)等多种类型数据
ArcGIS二次开发基础教程(01) :打开mxd文件,添加ShapeFiles(.shp),LayerFiles(.lyr),Personal GeoDatabase(.mdb),RasterFiles(.tif;.img)等多种类型的数据
(开发环境:VS2010+ArcEngine10.2+C#)
打开文件对话框
openFileDialog1.Title = "打开文件"; //这里只用了五种类型的文件 openFileDailog1.Filter = "ArcMap Document(*.mxd)|*.mxd|ShapeFile(*.shp)|*.shp|Personal GeoDatabase(*.mdb)|*.mdb|LayerFile(*.lyr)|*.lyr|RasterFile(*.tif;*.img)|*.tif;*.img"; //设置不能多选 openFileDialog1.Multiselect = false; if(openFileDialog.ShowDialog() == DialogResult.OK) {//记录文件路径为全局变量 方便后面使用(变量声明未写出)path = openFileDialog1.FileName;//获取文件名string fileName = System.IO.Path.GetFileName(path);//获取文件所在文件夹,打开工作空间需要string directory = Syste.IO.Path.GetDirectory(path);//文件扩展名string extention = System.IO.Path.GetExtention(path).Replace(".","").ToLower();//判断打开为何种类型的文件,调用相应的处理函数switch(extension){case "mxd":OpenMXDFile(path);break;case "shp":OpenShapeFile(fileName,directory);break;case "mdb":OpenPersonalGeoDatabase(path);break;case "lyr":OpenLayerFile(path);break;case "tif":case "img":OpenRasterFile(path);break;default:MessageBox.Show("Error");return;}axMapControl1.Refresh();axTOCControl.Updata(); }
打开mxd文件
void OpenMXDFile(path) {//直接调用mapcontrol的方法打开文件,当然还有其它方法axMapControl1.LoadMxFile(Path); }
shapeFile文件
void OpenShapeFile(string fileName,string directory) {//创建与数据类型相应的工作空间工厂 详情可查阅帮助文档IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactoryClass();//在数据所在文件夹中打开工作空间IFeatureWorkspace featrueWorkspace = workspaceFactory.OpenFromFile(directory) as IFeatureWorkspace;//以文件名打开要素类IFeatureClass featrueClass = featureWorkspace.OpenFeatrueClass(fileName);//创建要素图层并赋值IFeatureLayer featureLayer = new FeatureLayerClass();featureLayer.FeatureClass = featureClass;featureLayer.Name = featureClass.AliceName;//添加到mapcontrol中axMapControl1.AddLayer(featureLayer);axMapControl1.Refresh();axTOCControl1.Update(); }
mdb数据库
void OpenPersonalGeoDatabase(path) {//创建与数据类型相应的工作空间工厂IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactory();//直接以数据库文件全名打开数据库 这与打开要素类工作空间不同IWorkSpace workspace = workspaceFactory.OpenFromFile(path);//获取相应类型的数据集IEnumDataset enumDataset = workspace.get_Datasets(esriDatasetType.esriDTFeatureClass);//是什么数据就用什么类型,这里用FeatureClass做示范,也可用esriDTany表示任意类型IFeatureClass featrueClass = enumDataset.Next();//遍历每个要素类创建要素图层并添加到mapcontrol中while(featureClass != null){IFeatureLayer layer = new FeatureLayerClass();layer.FeatureClass = featureClass;layer.Name = featureClass.AliceName;axMapControl1.AddLayer(layer as ILayer);featrueClass = enumDataset.Next();}axMapControl1.Refresh();axTOCControl1.Update(); }
img,tif栅格数据
void OpenRasterFile(path) {//通过路径直接创建IRasterLayer rasterLayer = new RasterLayerClass();rasterLayer.CreateFromFile(path);axMapControl.AddLayer(rasterLayer as ILayer); }
还有一种最简单的添加数据的方法!!!
//直接使用AddData命令对象 这是我已知的最简单的用代码添加数据的方法
//Toolbar也提供了很多集成命令工具,以下代码也就是调用这些命令工具
ICommand icc = new ControlsAddDataCommandClass();
icc.OnCreate(axMapControl1.Object);//钩子函数
icc.OnClick();
历届GIS应用技能大赛开发题答案点这里,尚在不定期更新中
ArcGIS二次开发基础教程(01):打开mxd文件,添加(.shp),(.lyr),(.mdb),(.tif;.img)等多种类型数据相关推荐
- ArcGIS二次开发基础教程(11):网络分析之最短路径分析
ArcGIS二次开发基础教程(11):网络分析之最短路径分析 最短路径分析 这里直接调用了在mdb中建立好的网络数据集 //全局变量 private INetworkDataset my_networ ...
- ArcGIS二次开发基础教程(10):三维分析
ArcGIS二次开发基础教程(10):三维分析 坡度分析 请务必学会使用帮助文档!!! //DEM数据的坡度分析 将分析结果添加到地图上 //首先获取DEM数据,方法有很多例如从个人地理数据库获取,也 ...
- ArcGIS二次开发基础教程(13):网络分析之最近设施分析
ArcGIS二次开发基础教程(13):网络分析之最近设施分析 最近设施分析 /// <summary>/// Geodatabase function: open work space// ...
- ArcGIS二次开发基础教程(09):叠加分析
ArcGIS二次开发基础教程(09):叠加分析 缓冲区分析的概念及原理请查看帮助文档 http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/analy ...
- ArcGIS二次开发基础教程(00):基础界面设计
ArcGIS二次开发基础教程(00) : 基础界面设计 (开发环境:VS2010+ArcEngine10.2+C# :鉴于学习ArcGIS二次开发的同学都有一定的WinForm开发和ArcGIS软件使 ...
- ArcGIS二次开发基础教程(03):保存文档和导出地图
ArcGIS二次开发基础教程(03):保存文档和导出地图 保存文档 保存: //这里的path为全局变量 在打开文件获添加数据时赋值原路径 //判断打开文件是否为mxd文件 是则保存 不是则另存为 i ...
- ArcGIS二次开发基础教程(06):有关图层的基本操作
ArcGIS二次开发基础教程(06):有关图层的基本操作 0. PageLayout和MapControl 的同步 void CopyToPage(){//对象拷贝,把mapcontrol的地图拷贝重 ...
- ArcGIS二次开发基础教程(04):有关字段的操作和简单属性及空间查询
ArcGIS二次开发基础教程(04):有关字段的操作和简单属性及空间查询 属性 字段的添加.删除和查找 IFeatureLayer GetLayerByName(string name) {ILaye ...
- ArcGIS二次开发基础教程(08):在MapControl上画图(添加元素)
ArcGIS二次开发基础教程(08):在MapControl上画图(添加元素) 添加临时元素 0. 点元素 //临时画图的元素将不会保存在地图中 //全局变量 IPoint pt; IElement ...
- ArcGIS二次开发基础教程:开发环境配置教程(ArcEngine10.4+VS2019)
开发环境配置教程 由于ArcGIS.ArcEngine以及承载开发环境的Visual Studio的版本众多,其开发环境的配置也有不小的难度,故写此文章写给新入门ArcGIS二次开发的同学,帮助他们摆 ...
最新文章
- C++ternary search三元搜索的实现算法(附完整源码)
- knn实战:如何对手写数字进行识别?
- leetcode - 84. 柱状图中最大的矩形
- VC++绘图时,利用双缓冲解决屏幕闪烁 转载
- LAMP+LNMP视频教程
- python实现文件编码转换_Python实现批量转换文件编码的方法
- js基础之---slice()
- mysql ssh通道_详解如何通过SSH通道来访问MySQL
- Android动态加载字节码
- 路由器与计算机的ip地址,路由器ip地址与mac地址绑定
- 元胞自动机模型01——认识元细胞机模型
- 640-802 新版CCNA考试题库下载
- 《缠中说禅》炒股经典理论
- android按钮添加音效,Android中为按钮设置点击音效
- 百度热点排行榜 ---JS
- 如何平衡工作与生活?真相在此
- WebRTC 音视频同步分析
- linux apt 更新软件,apt get 更新软件
- MIT 心拍类型注释
- 自顶向下的GAMMA显著性——学习搜索复杂场景中的对象
热门文章
- 妮可妮可妮 [Hash]
- 如何创建unity的菜单栏和窗口
- 2048php,Phaser实现2048
- 亲自动手搭建微服务框架和测试环境-1-背景
- 物联网Wi-Fi,SIP 时代即将来临
- SNF快速开发平台--规则引擎在程序当中如何调用
- 计算机弹音乐教程远走高飞,计算器弹歌曲远走高飞 | 手游网游页游攻略大全
- 初中数学题用计算机能算吗,[转载]初中数学使用科学计算器的利与弊(节选)...
- 软件项目管理 6.5.自下而上估算法
- 10台堆垛机同时启动的那一刹那!