第一章
1.什么是组件
组件(Component)是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象,比较流行的组件模型有COM/DCOM、.NET组件、CORBA,不同的组件遵循不同的接口规范。
A. 组件与对象主要区别是:
※组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用 ;
※组件可以由一个类构成,也可以由多个类组成,或者是一个完整的应用程序;
※组件为模块重用,而对象为代码重用
2.※ COM
(Component Object Model)是组件之间相互接口的技术规范,其作用是使各种组件和应用软件能够用统一的标准方式进行交互。COM是一种与源代码无关的二进制
3.什么是接口,接口与类的关系
接口可以看作是一个特殊的类形式,除了不能别实例化为一个对象外,它可以实现类能够完成的任何任务,如声明对象为某种接口类型,接口也可以继承等。
4.基本类库
基本类库:System、SystemUI、Server、Geometry、Display、OutPut
数据访问:GeoDatabase、DatasourceOleDB、DatasourceFile、DatasourceGDB、DatasourceRaster、DatasourceDistributed
地图表达:Carto
地图分析:GeoAnalyst、 3DAnalyst、 NetWorkAnalysis、SpatialAnalyst、GlobeCore、Location
开发控件:Controls
第二章 控件
1.控件类型
制图控件: MapControl 和PageLayoutControl
3D控件: SceneControl和GlobeControl
框架控件: TOCControl (实现地图内容目录的展示。)和ToolbarControl
符号库管理控件: SymbologyControl
许可管理控件: LicenseControl
2.MapControl控件
该控件用于对空间数据进行分析和浏览,它封装了Map类(coclass),暴露了鼠标和绘制事件,支持地图文档(*.mxd)的装载。
主要属性:
ActiveView
Extent、FullExtent、(Extent属于IEnvelope接口(实现Geometry接口),该属性表示当前地图的视图范围。FullExtent表示的是Map的视图。)MapLayer、LayerCount
主要方法:
AddLayer、AddLayerFromFile、AddShapeFile、DeleteLayer、ClearLayers、MoveLayerTo
CenterAt、Pan
CheckMxFile、LoadMxFile、ReadMxMaps、DrawShape、DrawText、FlashShape、Refresh
FromMapPoint、ToMapPoint、TrackCircle、TrackLine、TrackPolygon、TrackRectangle
主要事件:
OnAfterDraw(OnAfterScreenDraw、OnBeforeScreenDraw)
OnExtentUpdated、OnFullExtentUpdated、OnMapReplaced
OnKeyDown、OnKeyUp
OnDoubleClick(OnMouseDown、OnMouseMove、OnMouseUp)
第三章 空间数据库管理
1.什么是空间数据库?
①空间数据库是被统一存储起来的空间数据的集合。
②它是GIS的重要组成部分,在GIS中处于核心地位。
2.空间数据模型有哪些?
①矢量模型(Vector)
②栅格模型(Raster)
③数字高程模型(DEM)
3.Geodatabase中的基本对象
要素类(包括拓扑,网络数据集,地形数据,宗地),栅格类,表
4.Geodatabase的三种存储方案:
5.featureWorkspace
主要方法:CreatTable、CreateFeatureDataset、 CreateFeatureClass、
OpenTable、OpenFeatureDataset、OpenFeatureClass
6.几何对象模型
(1) Geometry对象
(2) Envelope对象
√ Envelope是一个矩形框,至少有四个坐标属性,XMin,XMax,YMin,YMax,CenterAt方法就是根据坐标点来进行操作的。
√ Envelope对象还作为地图的视图范围或地理数据库的空间范围。(CenterAt、矩形对象缩放Expand)
(3) Polycure、Path与Segment
(4)Polyline对象:Polyline是多义线对象,是路径(Path)的集合。
8.要素存储
获取编辑工作空间,并开始编辑操作
第四章 地图对象与图层控制
1.地图控件读取地图文档
使用MapControl控件读取地图文档,需要使用到CheckMxFile、LoadMxFile、ReadMxMaps等方法。
一般思路是:
①通过CheckMxFile方法检测地图文档文件的有效性;
②使用LoadMxFile方法加载地图文档;
③运用ReadMxMaps方法读取地图文档中的地图集合,并通过MapControl控件Map属性,可视化指定电子地图
2.地图文档修改方法 —— 思路
- 先借助Map对象、 MapControl控件、 PageLayoutControl控件等设置并修改Map、PageLayout、ActiveView;
②然后利用ReplaceContents方法实现地图文档的修改。
地图文档包含多个地图框架(MapFrame),也就是包含多个Map对象;
◆地图控件(MapControl)只能可视化1个地图框架,不提供管理地图框架的功能;
◆布局控件可同时可视化多个地图框架,通过AddElement、 DeleteElement方法实现了地图框架的创建与删除;
3.地图对象(Map)
√地图对象(Map)是用户与空间数据交互的核心对象,实现了图层管理与空间对象交互式操作等相关方法。
√借助MapControl控件、PageLayoutContrl控件,可实现地图对象的可视化。
√ Map对象实现了IMap、IActiveView 、IActiveViewEvents
- Imap接口主要方法:AddLayer、AddLayers、 MoveLayer、ClearLayers、DeleteLayer、SelectByShape、SelectFeature、ClearSelection
IActiveView接口主要方法:Refresh、PartialRefresh(PartialRefresh方法让视图对象使用不同的方式进行局部刷新,以提高地图可视化效率!)
IActiveViewEvents接口主要方法:AfterDraw、AfterItemDraw、ContentsChanged
ItemAdded、ItemDeleted、SelectionChanged、SpatialReferenceChanged、ViewRefreshed
4.图层对象与图层管理
layer:
Layer 是图层对象,是数据的外壳,必须建立在数据的基础上才有意义。在 ArcMap 中,它可以表示任何图层,例如要素图层( IFeatureLayer ),栅格图层( IRasterLayer ),图形图层集合( ICompositeGraphicsLayer )
IfeatureLayer:
继承自ILayer,提供了访问基于矢量数据图层的属性和方法,图层的数据可以是Geodatabase、Shapefile或Coverage数据。如果使用FeatureLayer组件类,还可以通过IGeoFeatureLayer接口获得更多的属性和方法。提供了控制要素图层的属性和方法,例如标记属性( AnnotationProperties )、注记显示设置( DisplayAnnotation )
FeatureClass对象:
要素类由要素组成(Feature),要素对应要素类中的一行,要素相当于空间对象(Geometry )+相应的属性信息。IFeatureClass 定义了对要素的查询,更新,删除等操作。
IFeatureSelection接口:
IFeatureSelection 接口负责管理一个图层中的要素选择集的方法和属性。 IFeatureSelection 接口 的 Add 方法可以把本图层中的一个要素添加到图层的选择集中;SelectFeatures 方法则利用过滤器对象将 符合条件的要素放入到图层的选择集中。使用 IFeatureSelection 接口可以实现要素的高亮显示。
Search与Select的区别:
Search 返回游标,Select 返回选择集;
游标:必须遍历游标才能得到所有的结果,不必太关注内存;
选择集:查询后既可得到,但是通常只保留 OID 字段,数据量打的时候要考虑内存压力。
Cursor与FeatureCursor对象的区别:
Cursor对象,本质上是一个指向数据的指针,本身不包含数据内容,他是连接到Row对象或要素对象的桥梁;
游标有三种类型:查询游标、插入游标、更新游标;每种游标通过对应方法获得,如Search(),Insert(),Update();
Cursor 中文‘游标“,它本质上是一个指向数据的指针,自身并不包含数据。游标有三类,查询游标, 插入游标和更新游标,每一游标都是又其相应的方法得到,如查询游标是由 ITable.Search 方法得到。游 标是 GIS 中使用频率很高的,凡是和数据的查询,更新,删除等都跟他有关。ICursor 定义了对游标的操 作。当我们通过 ITable.Search 对数据进行查询,要获取具体 Row 的信息的时候,要通过 ICursor.NextRow 方法向前遍历,游标是不能后退的。游标是和 Table 相对应的。IFeatureCursor 继承了 ICursor, IFeatureCursor 是和要素类相对应。
QueryFilter与SpatialFilter对象:
而 QueryFilter (用于table表查询)对象和 SpatialFilter (用于Featureclass要素类表查询)对象分别对 应了 ArcGIS Engine 中的属性查询和空间查询。
第五章 地图符号化
地图符号由形状不同、大小不一、色彩有别的图形和文字组成,是一种图形语言。
地图符号不仅具有确定的客观事物空间位置、分布特点、质量和数量特征的基本功能,还包括事物之间的相互联系及区域总体特征。
Arc Engine提供了丰富的符号组件来满足地图设计中的各种需求,这些组件包括Color、Symbol、 Renderer三大系列,地图符号化就是通过多个组件间的合作来完成的。
Color对象
RGB:
RGB主要用于彩色光栅图形显示器中。由红(R)、绿(G)、蓝(B)原色混合而成。AE中提供RgbColor颜色对象
IColor接口:可进行颜色类型的相互转换,定实现透明度等颜色的全局设置
IRgbColorr接口:方法:GetCIELAB、SetCIELAB,属性:Blue、Green、Red
CMYK:
在印刷行业,主要采用青(C)、品红(M)、黄(Y)、黑(BK)四色印刷 。由于青、品、黄无法混合出纯正的黑色,因此单独将黑色设置为一个颜色,就是CMYK模型。AE中提供CmykColor颜色对象。
ICmykColor接口:方法:GetCIELAB、SetCIELAB,属性:Black、Cyan、Magenta、Yellow
HSV:
此颜色模型由色调(H)、饱和度(S)和色明度(V)来表示,HSV模型对应圆柱体坐标系中的一个圆锥形子集。AE中提供HsvColor颜色对象。
IHsvColor接口:方法:GetCIELAB、SetCIELAB,属性:Hue、Value、Saturation
HIS:
此颜色模型由色调(H)、饱和度(S)和明亮度(I)来表示。AE中提供HlsColor颜色对象。。
Gray模型:
无彩色的灰度模型,以256级灰色模拟颜色层次,从0(黑色)到255(白色)之间的值。AE中提供GrayColor颜色对象。
IGrayColor接口:方法:GetCIELAB、SetCIELAB,属性:Level
CIELAB模型:
是人类视觉感应的数字化表示,颜色种类全面丰富,色彩空间广阔。
L——亮度值(0-100)
a——正端红色,负端绿色
b——正端黄色,负端蓝色
ColorRamp对象(色带)
- 设置起止颜色的渐变颜色集合:AlgorithmicColorRamp
- 多颜色产生新色带PresetColorRam
- 多色带产生新色带:MultiPartColorRamp
- 随机产生新色带:RandomColorRamp
Symbol:
在 GIS 中我们简单的空间实体抽象为点,线,面三种要素,在 ArcGIS Engine 中对符号也抽象为和前 者对应的 MarkerSymbol,LineSymbol 和 FillSymbol。此外还有两种特殊的符号,一种是用于显示 3D 的 3D Chart,另一种是用来标注文字的 TextSymbol。
专题图制作
地图标注
文本标注,
自动标注
第六章 空间查询与分析
- FeatureCursor
- 空间查询
使用QueryFilter对象(主要属性:WhereClause设定筛选条件,主要方法AddField添加字段)
使用SpatialFilter对象(主要属性:WhereClause、Geometry、GeometryField、SearchOrder)
空间关系分析(P292)IrelationalOperator接口实现
空间拓扑处理(P284) ItopologicalOperator接口实现
拓扑邻接、拓扑关联、拓扑包含是三种最基本的拓扑关系。
关联关系是指不同类图形元素之间的拓扑关系,如节点与弧段的关系,弧段与多边形的关系等。邻接关系是指同类图形元索之间的拓扑关系,如节点与节点、弧段与弧段、多.边形与多边形等之间的拓扑关系。连通关系指的是由节点和弧段构成的有向网络图形中,节点之间是否存在通达的路径,即是否具有连接性,是一种隐含于网络中的关系,其描述通过连接关系定义。包含关系是指多边形内是否包含了其他弧段或多边形。
拓扑关系对GIS具有以下重要意义:
(1)不需要利用坐标或者计算距离,能够清楚地反映某一要素与另一要素的空间位置关系。
(2)某些空间分析功能是基于拓扑关系而实现的。例如,要求某条河流的流域面积、流经的城市,查询有哪些国家与某个国家相邻等等。
(3)在进行某些空间分析之前必须检查数据的拓扑关系的合理性。这样的空间分析功能有计算最佳路径、缓冲分析、裁剪、建立封闭多边形等。
拓扑元素是拓扑关系的描述单元。
GeoDatabase数据模型包括一般性的常见3类要素类:点状要素类、线状要素类和面状要素类。
在二维空间中,它们分别对应的是3种拓扑元素,即结点、弧和面域(多边形)。
拓扑关系是不考虑度量和方向的空间实体之间的空间关系,它讲究的是拓扑元素彼此间的相对位置关系。
空间距离计算