使用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 ...
随机推荐
- Java深拷贝与序列化
对基本类型的变量进行拷贝非常简单,直接赋值给另外一个对象即可: int b = 50; int a = b; // 基本类型赋值 对于引用类型的变量(例如 String),情况稍微复杂一些,因为直接等 ...
- NGUI_基础入门学习
目录 1. Control Widgets 控制部件2. Anchors 锚3. Interaction 交互4. Menu 菜单5. Controller Input 控制器的输入6. Lights ...
- springboot---redis缓存的使用
1.下载redis安装包,解压到电脑 2.启动redis 3.springboot application.properties中配置redis缓存 spring.redis.host=127.0. ...
- Cookie的删除
1.设置一个Cookie,与要删除的Cookie同名,并将有效时间设置为0: protected void doGet(HttpServletRequest request, HttpServletR ...
- CSS——字体
1.字体样式font-family.颜色color <!DOCTYPE html> <html> <head> <meta charset="UTF ...
- 为什么Kubernetes使用Pod作为最小调度单元
一.Pod说明 Pod只是一个逻辑概念,一个原子调度单位,其优势在于 可以统一调度一组容器到指定的node上 共享资源,Pod的容器可以使用localhost进行通信,使用volume进行文件共享.使 ...
- Android静态注册广播无法接收的问题(8.0+版本)
如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+ * 前言** Google官方声明:Beginning with Android 8.0 (API level 26), t ...
- 使用Spring中的PropertyPlaceholderConfigurer读取文件
目录 一. 简介 二. XML 方式 三. Java 编码方式 一. 简介 大型项目中,我们往往会对我们的系统的配置信息进行统一管理,一般做法是将配置信息配置与一个cfg.properties 的文件 ...
- C++基础之关联容器
关联容器 关联容器和顺序容器的本质区别:关联容器是通过键存取和读取元素.顺序容器通过元素在容器中的位置顺序存储和访问元素.因此,关联容器不提供front.push_front.pop_front.ba ...
- linux&shell学习系列
1.VMware安装Centos7虚拟机 2.Linux之vim详解 3.linux后台运行的几种方式 4.linux权限管理 5.linux之用户和用户组管理详解 6.grep文本搜索工具详解 7. ...