使用AddLayer方法加载shp文件中使用的Map、Dataset等对象详解
内容源自:ArcGIS Engine+C#入门经典
方法二:使用axMapControl1对象的AddLayer方法加载ShapeFile文件
添加ShapeFile文件需要用到Map、Dataset、FeatureLayer和FeatureClass等对象。
这些对象一般用到的主要接口有IMap、IActiveView、IDataset、IFeatureLayer和IFeatureClass等。
Map组件类主要是地图图层数据显示和操作的一个平台。一个Map对象可以包含多个各种图层。该组件类主要实现了IMap接口,主要用于控制地图数据和相关元素,通过该接口可以添加、删除图层,访问各种数据源和Map的各种特性,以及通过各种方式选择要素。例如,ActiveGraphicsLayer用于获取Map中处于激活状态的图层,Layer用于获取索引指定的图层,LayerCount 用于获取Map中的图层数量,AddLayer用于向Map中添加图层,ClearSelection用于清除所选择集中的所有对象(如果选择集中已经选中对象)。
Dataset抽象类表示数据集,是Workspace中数据的集合。一个Workspace可以包含一个或者多个Dataset,一个Dataset可以包含其他的Dataset。该抽象类不能创建对象,可以通过该类的派生类:GeoDataset、Table、FeatureDataset、RasterDataset等来创建具体类型的数据集。该抽象类主要实现了IDataset接口,主要用来管理数据集和提供数据集本身的相关属性信息,该接口同时也被Workspace类、Featurelayer组件类实现。该接口提供了对数据集操作的属性和方法,如Name用于获取数据集的名称,Category用于获取数据集的类型,Workspace 用于获取数据集所在的工作空间,CanCopy用于检测数据集是否可以被复制,CanDelete用于检测数据集是否可以被删除,CanRename 用于检测数据集是否可以被重命名。
FeatureLayer组件是要素图层,是要素Feature的集合及其可视化表达。该类主要实现了ILayer、IFeatureLayer接口。
ILayer接口提供了方法和属性,来确定图层的范围、最大和最小显示比例尺、空间参考、图层名以及显示方案等,如Name用来设置或获取图层名,SpatialReference用来设置空间参考,MaximumScale用来设置最大比例尺。
IFeatureLayer接口是从ILayer接口继承下来的,该接口继承了ILayer接口所有的属性和方法,同时还提供了一些自己的属性和方法,如数据源的类型,显示的字段、符号是否随比例尺变化,以及搜索等功能。例如,DataSourcesType用于获取或设置数据源的类型;FeatureClass用于获取图层的要素类;ScaleSymbols用于获取或设置要素层中的符号是否随比例尺的变化而变化;Search是通过指定的查询过滤器在要素层中搜索符合给定查询条件的要素。
FeatureClass要素类是Feature的集合。该要素类中所有的要素具有相同的属性字段,另外还有一个Shape字段专门存放几何图形。该类主要实现IFeatureClass接口,提供了用于获取和设置要素类的属性,如CreateFeature用于创建一个新的要素,DeleteField用于删除要素类的字段。
使用AddLayer方法加载shp文件中使用的Map、Dataset等对象详解的更多相关文章
- 利用“反射”动态加载R文件中的资源
前几天做一个Android下面数据库相关的应用.用ListVIew展示表中数据的时候我希望能给表中每一条记录,加一个展示的图片.但是用数据库保存图片是比较难搞的.于是就把所需图片都保存到res下的dr ...
- MFC使用LoadBitmap方法加载位图文件失败解决方案(转)
用如下方法在原项目中使用LoadBitmap方法加载已有的位图资源作为背景没有问题,但放在别的项目中总是加载不出来,该函数返回NULL HBITMAP hBitmap=LoadBitmap((HINS ...
- easyui datagrid 加载静态文件中的json数据
本文主要介绍easyui datagrid 怎么加载静态文件里的json数据,开发环境vs2012, 一.json文件所处的位置 二.json文件内容 {"total":28,&q ...
- java类生命周期,类的“加载,连接,初始化,使用,卸载过程”详解
“ 如果说核心类库的 API 比做数学公式的话,那么 Java 虚拟机的知识就好比公式的推导过程” 每本Java入门书籍在介绍Java这门语言的时候都会提到Java跨平台,“一次解释,到处运行的特点“ ...
- spring加载资源文件中classpath*与classpath的区别
在spring和MyBatis继承的时候,配置mapperLocations.一开始配置是这样的. 需要加载路径为com/thomas/base/mapper和com/thomas/bu/mapper ...
- 浏览器加载模式:window.onload和$(document).ready()的区别(详解)
jQuery库文件是在body元素之前加载的,必须等待所有的DOM元素加载后,延迟支持DOM操作,否则就无法获取到. 在延迟等待加载,JavaScript提供了一个事件为load,方法如下: wind ...
- JavaScript中的Function(函数)对象详解
JavaScript中的Function对象是函数,函数的用途分为3类: 作为普通逻辑代码容器: 作为对象方法: 作为构造函数. 1.作为普通逻辑代码容器 function multiply(x, y ...
- 在三维场景中加载shp(skyline)
在场景中添加shp图层有两个方法: (1)直接调用Command命令,SGWorld.Command.Execute(1013,5);这样的话,和在场景中的工程树中右键添加特征图层的过程是一样的.有个 ...
- java加载properties文件的六中基本方式实现
java加载properties文件的方式主要分为两大类:一种是通过import java.util.Properties类中的load(InputStream in)方法加载: 另一种是通过impo ...
随机推荐
- Yum未完成事务问题
1.安装 yum-complete-transaction [root@linux-node1 ~]# yum -y install yum-utils 2.清除yum缓存 [root@linux-n ...
- gh-ost 原理剖析
gh-ost 原理 一 简介 上一篇文章介绍 gh-ost 参数和具体的使用方法,以及核心特性-可动态调整 暂停,动态修改参数等等.本文分几部分从源码方面解释gh-ost的执行过程,数据迁移,切换细节 ...
- CSS——设置背景
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 让Samba支持Windows10的自动发现
Windows10如果开了SMB 1.0支持,就非常不安全,不开就搜索不到samba的NETBIOS. 在安装配置好samba,并且确认windows可以通过netbios名访问后. 可以使用http ...
- 通俗讲解 RESTful
1 什么是 RESTful 百度一下 RESTful,查到的资料很多都讲得不清楚,看完了都不知道说的是啥,导致很多人对 RESTful 不甚了解.来看一下常见的解释: (1)神一样的描述REST 并不 ...
- Redis基础(官方文档总结)
REmote DIctionary Server(Redis) Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供 ...
- python9
v> 软件测试 广州博才科技开发有限公司 迅捷PDF编辑器 3.5 集合 学习目标: 1. 能够说出如何创建集合 2. 能够说出字典和集合的区别 3. 能够说出如何向集合中添加元素 4. 能够说 ...
- Webpack配置区分开发环境和生产环境
在项目开发的时候,我们通常会将程序分为开发环境和生产环境(或者叫线上环境),开发环境通常指的是我们正在开发的这个阶段所需要的一些环境配置,也就是方便我们开发人员调试开发的一种环境:生产环境通常指的是我 ...
- Unity项目 - DeathtrapDungeon死亡地牢
目录 游戏原型 项目演示 绘图资源 代码实现 注意事项 技术探讨 参考来源 游戏原型 死亡地牢是一款 2D-Roguelike 的地牢冒险游戏.手握利刃,斩杀怪物,在凶险的地牢内生存下去.但注意,敌人 ...
- C#控件及常用属性
1.窗体(Form) 1.常用属性 (1)Name 属性:用来获取或设置窗体的名称,在应用程序中可通过Name 属性来引用窗体. (2) WindowState 属性: 用来获取或设置窗体的窗口状态. ...