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二次开发的同学,帮助他们摆 ...
最新文章
- VC 中类型转换(转)
- Linux I/O多路复用
- VMware中安装CentOS Linux release 7.4.1708 (Core)
- thinkphp验证是否登录并跳转
- thinkphp mysql类_PHP封装类似thinkphp连贯操作数据库的Db类(简单版)
- elasticsearch 安装( 阿里云ECS )、远程访问、启动报错处理
- mfc 监控文件操作_商务办公好伴侣 兄弟MFC系列多功能一体机
- 数据结构与算法系列——排序(10)_归并排序
- PHP htmlspecialchars() 函数
- web1:http协议简介和用netassist和py程序当http服务器
- 项目实战第一讲:如何优雅地记录操作日志
- 千人千面算法java实现_推荐算法-recommend_system
- SysKey 和 SAM
- 汽车研发企业试验数据管理系统建设研究
- catdog matlab,猫狗1,猫狗1百度云资源_盘多多如风搜_盘搜搜_哎哟喂啊
- 银行磁条卡即将被淘汰
- (2020)使用Airtest来爬取某宝评论数据
- 2021_01_25
- 消防设备电源监控系统在高层民用建筑内的应用
- JAVA 基本语法 Scanner类的使用 实现步骤 三步走(Scanner)
热门文章
- “我与女明星只差一个毛戈平”,毛戈平与上市又差什么?
- Python可视化数据学习
- 未来的学习目标-C/C++/Linux服务器开发高级架构
- mysql 时间毫秒值_MySQL存储毫秒数据的方法
- html在表格输入文字不显示,Word表格中有部分格子内无法输入文字是怎么回事?...
- 程序媛必备之日常BGM
- top n with ties
- 课堂派题库格式转换程序
- codeforces每日5题(均1500)-第十七天
- ChucK初步(8)