版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目目 录录1 ArcGIS体系结构2 ArcGIS Engine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Engine开发环境与流程ArcGIS ArcGIS 整体架构整体架构CustomizationArcGIS DesktopArcGIS ServerArcIMSArcGIS Mobile ArcPadArcGIS Engine桌面桌面 GIS嵌入式嵌入式 GIS服务器服务器 GIS移动移动 GISGeodatabaseDBMSFile-based
2、XMLArcSDEArcEditorArcViewArcInfoEngine Developer KitServer Developer KitCustomizationDesktop Developer Kit.NET C+ VB Java.NET VC+VB.NETADFJavaADFC+ArcObjectsXML+VBScriptArcPad Application BuilderJavaScriptHTML/DHTMLXML.NETServicesJSPJavaActiveX (ASP)ColdFusion1 1、ArcGISArcGIS的客户端的客户端nArcGIS的客户端产品包括A
3、rcView 、ArcEditor、ArcInfon三个客户端都有统一风格的桌面应用:ArcCatalog、ArcMap和ArcToolbox。 lArcCatalog:ArcCatalogArcCatalog是一个集成化的空间数据管理器,主要用于空间数据浏览,是一个集成化的空间数据管理器,主要用于空间数据浏览,GeodatabaseGeodatabase的结构定义、数据的导入导出、网络模型的生成、对象关系的结构定义、数据的导入导出、网络模型的生成、对象关系和规则的定义、元数据的定义和编辑修改等。和规则的定义、元数据的定义和编辑修改等。ArcCatalogArcCatalog支持大量的数据格式
4、,包括:支持大量的数据格式,包括:ESRI shapefiles, ESRI shapefiles, Geodatabases, ArcSDE layers, INFO tables, Geodatabases, ArcSDE layers, INFO tables, Image, GridImage, Grid, Tin, CAD, Tin, CAD文件文件, , 动态分段事件以及其它动态分段事件以及其它ESRIESRI数据类型和文件等。数据类型和文件等。l ArcMap是集空间数据显示、编辑、查询检索、统计、报表生成、空间分析和高级是集空间数据显示、编辑、查询检索、统计、报表生成、空间分析
5、和高级制图等众多功能于一体的桌面应用平台。制图等众多功能于一体的桌面应用平台。ArcMapArcMap提供面向对象的类似提供面向对象的类似CADCAD的空间数据编辑工具,全面支持空间数的空间数据编辑工具,全面支持空间数据的可视化交互操作。据的可视化交互操作。ArcMapArcMap提供了所见即所得的符号编辑器,令使用者可以随心所欲地提供了所见即所得的符号编辑器,令使用者可以随心所欲地生成生成任意复杂的点线面符号任意复杂的点线面符号。ArcMapArcMap进一步拓展了进一步拓展了ESRIESRI强大的空间数据直接读取能力,多种格式的数据强大的空间数据直接读取能力,多种格式的数据无需进行转换或利
6、用中间交换格式即可动态地直接使用。无需进行转换或利用中间交换格式即可动态地直接使用。ArcMapArcMap支持的空支持的空间数据格式包括:间数据格式包括:ArcInfo coverages, ESRI shapefiles, ArcSDE layers, ArcInfo coverages, ESRI shapefiles, ArcSDE layers, DXF and DWG, DGN, DXF and DWG, DGN, 大量的图像格式大量的图像格式, GRID, GRID、TINTIN,等等。,等等。ArcMapArcMap还支持空间数据的动态投影(还支持空间数据的动态投影(on-th
7、e-fly projectionon-the-fly projection)。)。1 1、ArcGISArcGIS的客户端的客户端lArcToolbox是一个用于空间数据格式转换、叠加是一个用于空间数据格式转换、叠加处理、缓冲区生成、坐标转换等的集处理、缓冲区生成、坐标转换等的集成化成化“工具箱工具箱”。ArcToolboxArcToolbox以以树形树形结构结构方式组织了方式组织了120120多个不同的空间多个不同的空间数据处理工具,并且都是以数据处理工具,并且都是以菜单驱动菜单驱动的方式提供出来,这为我们以一种确的方式提供出来,这为我们以一种确定的、轻松的方式去完成哪怕是很复定的、轻松的方
8、式去完成哪怕是很复杂的工作提供了前所未有的方便。杂的工作提供了前所未有的方便。1 1、ArcGISArcGIS的客户端的客户端2 2、ArcGIS ArcGIS 的服务器端的服务器端nArcIMS用户的空间数据和应用可以通过用户的空间数据和应用可以通过ArcIMS ArcIMS 在在 Intranet/InternetIntranet/Internet环境环境中进行发布和共享。中进行发布和共享。ArcIMSArcIMS提供用户在服务器端可以以提供用户在服务器端可以以影像方式影像方式或或矢量数据流方式矢量数据流方式进行数据发布。客户端用户通过工业标准的通用进行数据发布。客户端用户通过工业标准的通
9、用浏览器即可对浏览器即可对ArcIMSArcIMS服务站点进行访问和交互操作。服务站点进行访问和交互操作。ArcIMSArcIMS支持支持包括包括ServletServlet、ColdFusionColdFusion、ASPASP等多种等多种Web ServerWeb Server端技术,同时端技术,同时开发了有望成为未来开发了有望成为未来InternetInternet环境中环境中GISGIS通用语言的通用语言的ArcXMLArcXML,为空,为空间数据跨厂商跨平台的广泛交流和共享打下了坚实的基础。间数据跨厂商跨平台的广泛交流和共享打下了坚实的基础。nArcSDEArcSDEArcSDE是是
10、ESRIESRI的空间数据库引擎,用于对海量的空间数据库引擎,用于对海量空间数据空间数据及其及其属性数据属性数据的管的管理和驱动,为理和驱动,为并发访问并发访问的客户端提供快速、安全的数据服务。的客户端提供快速、安全的数据服务。ArcSDEArcSDE支持支持工业标准的工业标准的DBMSDBMS平台(如:平台(如:ORACLEORACLE、SQL ServerSQL Server、DB2DB2、InformixInformix等),等),同时引入了其独有的同时引入了其独有的异步缓冲机制异步缓冲机制和和协同操作机制协同操作机制,使得空间数据服务的响,使得空间数据服务的响应效率得到提高,真正起到了
11、应效率得到提高,真正起到了“引擎引擎”的作用,而并不仅仅是提供一种空间的作用,而并不仅仅是提供一种空间数据存储方式。另外,数据存储方式。另外,ArcSDEArcSDE具有丰富的客户端可供用户选用,如:具有丰富的客户端可供用户选用,如:ArcInfoArcInfo、ArcViewArcView、ArcIMSArcIMS、MapObjectsMapObjects、ArcExplorerArcExplorer等。同时,还等。同时,还提供了开放的提供了开放的APIAPI编程接口,供用户或开发商开发自己的客户端应用或产品。编程接口,供用户或开发商开发自己的客户端应用或产品。2 2、ArcGIS ArcG
12、IS 的服务器端的服务器端3 3、ArcGIS ArcGIS 与与 ArcObjectsArcObjectsp ArcGIS是构建在ArcObjects组件库之上。pESRI 使用 ArcObjects来开发软件和应用程序。p 开发者使用ArcObjects去客户化软件与创建自己的应用程序。p ArcObjects 是 ArcGIS 的核心。目目 录录1 ArcGIS体系结构2 ArcGIS Engine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Eng
13、ine开发环境与流程ArcGIS Engine ArcGIS Engine 产品产品vArcGIS Engine包含了两个产品: ArcGIS Engine Runtime n 是运行所有ArcGIS Engine应用程序所必须的软件n 最终用户需要安装n 可以进行不同的运行时选项选择 ArcGIS Engine Developer Kitn 开发者使用的n 包含了所有开发库和开发资源n 可以进行所有的选项开发 v 两个产品都通过软件许可文件授权ArcGIS Engine Developer KitArcGIS Engine Developer Kit产品产品v 用来创建独立、嵌入式的桌面应用
14、程序v 包含构建ArcGIS Engine应用程序所需的许可v 构建在ArcObjects基础之上v 不包含ArcMap, ArcCatalog, ArcToolbox, ArcScene 等应用程序框架v 运行在桌面上(Windows, Unix & Linux)v 提供多种开发APIsn C+, .Net, Java, COMn 4种APIs使用了相同的对象v 包括了构建定制ArcGIS Engine独立应用的所有功能标准标准EngineEngine功能功能v 地图浏览v 地图制作v 数据查询v 数据分析v 所有的开发控件 MapControl, PageLayout, Toolbar,
15、TOC, ArcReaderv 对所有矢量和栅格数据源的读权限v 对Shapefile和pGDB的写权限v 读/写 MXD文件目目 录录1 ArcGIS体系结构2 ArcGIS Engine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Engine开发环境与流程ArcEngineArcEngine产品结构产品结构ArcEngine是开发人员用于建立自定义应用程序的嵌入式GIS组件的完整类库。包含以下五个部分:基本服务基本服务:由GIS核心ArcObject
16、s构成。几乎所有的GIS应用程序都需要,如几何体和显示。数据存取数据存取:对许多栅格和矢量格式的数据进行存取,包括GeoDatabase。地图表达地图表达:创建和显示带有符号、标注的地图以及专题地图的ArcObjects对象。开发组件开发组件:快速应用开发的高级用户接口控件和综合帮助系统。运行时选项运行时选项:与标准功能或其他高级功能一起部署的部件。标准标准ArcGIS EngineArcGIS Engine开发组件开发组件v 标准的ArcGIS Engine开发组件包含: 数据和地图的显示 (MapControl & TOC) 跟踪形状和显示绘制(Map) 定制工具和命令 (Toolbar)
17、 地图布局和打印 (PageLayout) 访问底层的ArcObjectsArcGIS EngineArcGIS Engine扩展模块扩展模块v GeoDatabase Updatav 3D 分析v 空间分析GeoDatabase UpdataGeoDatabase Updata扩展扩展v 提供创建和更新多用户企业级地理数据库的功能。v 版本管理、离线编辑v 提供了拓扑、子类和几何网络等地理数据库行为的程序实现。v 释放相应的ArcObjects的功能。空间分析扩展空间分析扩展v 创建、查询和分析基于像元的栅格数据v 坡度计算v 坡向计算v 用数字高程模型生成等高线v 3D3D分析扩展分析扩展
18、v 实现数据的三维可视化v 提供SceneControl和GlobeControlv 创建表面和分析表面的多层3D数据v 把3D功能嵌入到应用系统中。小结小结:ArcGIS Engine:ArcGIS Engine的功能的功能v图层显示v地图漫游和缩放v识别地图上的要素v显示字段值的文本标注v显示航空相片或卫星影像v绘制描述性文本v用线、框、区域、多边形和圆选择要素v选择与某些要素的距离在一定范围的要素v用结构化查询语言表达式查找和选择要素v定制地图的专题显示方式v动态显示实时或时间序列数据v转换地图的坐标系统v在要素几何形状上执行几何操作以,创建缓冲区、计算差异、发现交叉、合并和求异等。(几
19、何运算)v处理要素形状或者旋转地图v创建和更新地理要素及其属性v地图制图输出v3D显示、空间分析v目目 录录1 ArcGIS体系结构2 ArcGIS Engine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Engine开发环境与流程ArcGIS EngineArcGIS Engine类库图类库图ArcGIS EngineArcGIS Engine类库:类库:1 1、SystemSystemv System类库是ArcGIS系统结构中最底层的类库。v Sy
20、stem类库包含了构成为ArcGIS的其他类库提供服务的组件。v System类库中定义了大量开发者可以实现的接口,如AoInitializer对象就是在System类库中定义的,所有开发者必须使用这个对象来初始化ArcGIS Engine。ArcGIS EngineArcGIS Engine类库:类库:2 2、 SystemUI SystemUI v 包含用户界面组件接口定义。如:Icommand、Itool和IToolControl接口。v 开发者使用这些接口来扩展UI组件。v 包含的一些使用工具对象,通过使用这些对象来简化用户界面的开发, 如Icommand和Itool这样的接口就在这里
21、定义。ArcGIS EngineArcGIS Engine类库:类库:3 3、GeometryGeometryv 处理存储在要素类中的要素形状。如:Point、MultiPoint、Polyline、Polygon等。v 存储构成几何要素的子要素。如:Segement、Path、Ring等。v 存储几何要素的空间参考对象。包括:投影坐标和地理坐标系统等。ArcGIS EngineArcGIS Engine类库:类库:4 4、DisplayDisplayv 用于控制地图显示。v 包含用于显示GIS数据的对象。v 包含符号、颜色等用来控制显示的对象。v 包含交互操作时提供给用户显示回馈的对象,如M
22、oveEnvelopeFeedbackMoveEnvelopeFeedback。ArcGIS EngineArcGIS Engine类库:类库:5 5、ServerServerv 用来连接并操作ArcGIS Server。v 访问ArcGIS Server的ServerObjectsManager对象。v 操作ArcGIS Server的ServerContext对象。ArcGIS EngineArcGIS Engine类库:类库:6 6、OutputOutputv 用来控制地图的输出v 用户创建图形输出到打印机或者绘图仪等设备。v 输出成JPG、BMP、增强图元文件等格式。ArcGIS En
23、gineArcGIS Engine类库:类库:6 6、GeoDatabaseGeoDatabasev 为ArcGIS支持的所有数据源提供了一个统一编程模型。v 定义了许多由ArcObjects架构中更高级的数据源提供者实现的接口。v 开发者可以扩展地理数据库,以支持特定类型的数据对象。v 该类库还支持PlugInDataSource对象添加的自定义矢量数据源。ArcGIS EngineArcGIS Engine类库:类库:7 7、GISClientGISClientv 允许开发者使用Web服务。v 可以连接到ArcIMS。v 支持以无状态方式或者通过Web目录操作ArcGIS Server对象
24、的编程模型。ArcGIS EngineArcGIS Engine类库:类库:8 8、DataSourcesFileDataSourcesFilev 包含用于基于文件数据源的GeoDatabase API实现。v 基于文件的数据源包括:shapefile、coverage、TIN、CAD、SDC、StreetMap和VPF。v 开发者不能扩展DataSourcesFile。ArcGIS EngineArcGIS Engine类库:类库:9 9、DataSourceGDBDataSourceGDBv 包含用于数据库数据源的GeoDatabase API实现。v 数据源包括:Access和ArcSD
25、E支持的关系型数据库管理系统,如:DB2、Informix、SQL Server、Oracle。v 开发者不能扩展该类库。 ArcGIS EngineArcGIS Engine类库:类库:1010、DataSourcesOleDBDataSourcesOleDBv 包含用户Microsoft OLE DB数据源的Geodatabase API实现。v 只能用在Microsoft Windows上。v 这些数据源包括支持数据提供者和文本文件工作空间的所有OLE DB。ArcGIS EngineArcGIS Engine类库:类库:1111、DataSourcesRasterDataSources
26、Rasterv 包含用于栅格数据源的GeoDatabase API实现。v 这些数据源包括ArcSDE支持的关系型数据库管理系统:DB2、Informix、SQLServer、Oracle,以及支持RDO栅格文件格式。ArcGIS EngineArcGIS Engine类库:类库:1212、CartoCartov 包含操作2D地图的对象。v 支持2D地图的创建和显示。v 提供Map和PageLayout等基础对象。v 提供MapDocument对象来操作地图文档。ArcGIS EngineArcGIS Engine类库:类库:1313、Network AnaliysisNetwork Anal
27、iysisv 提供用于在地理数据库中加载和分析网络数据的对象。v 开发者可以扩展NetworkAnaliysis类库,以便支持自定义的网络追踪。v 该类库的目的在于操作公共网络:供气管线、供电网络等。ArcGIS EngineArcGIS Engine类库:类库:1414、ControlsControlsv 用来构建或扩展具有ArcGIS 功能的应用程序。v 提供一系列的开发控件,通过封装ArcObjects,提供粗颗粒度的API来简化开发过程。v 提供HookHelper对象,简化命令操作的创建。ArcGIS EngineArcGIS Engine类库:类库:1515、GeoAnalystG
28、eoAnalystv 包含支持核心空间分析功能的对象。v 这些功能用在SpatialAnalyst和3DAnalyst两个类库中。v 开发者可以通过创建新类型的栅格操作来扩展GeoAnalyst类库。ArcGIS EngineArcGIS Engine类库:类库:1616、3D Analyst3D Analystv 包含操作3D场景的对象。v 主要对象为:Scene。v 运行时需要3D许可选项ArcGIS EngineArcGIS Engine类库:类库:1717、Spatial AnalystSpatial Analystv 包含在栅格数据和矢量数据上执行空间分析的对象。v 通常是直接使用给
29、类库中的对象,不做扩展。v 运行时需要空间分析选项许可。ArcGIS EngineArcGIS Engine类库:类库:1818、GlobeCoreGlobeCorev 包含操作Globe数据的对象。v 主要对象为:Globe。v 运行时需要3D许可选项。目目 录录1 ArcGIS体系结构2 ArcGIS Engine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Engine开发环境与流程ArcGIS EngineArcGIS Engine控件概念控件概念
30、v嵌入式组件一每个ArcGIS控件都是嵌入式组件,可以拖放到可视化设计环境提供的容器窗体或对话框中。一旦放在了容器内,就可以改变ArcGIS控件的大小和位置,以便与其他嵌入式组件一起为应用程序提供用户界面。ArcGIS EngineArcGIS Engine控件概念控件概念v属性页 一旦控件被放入了容器中,就可以使用右键点击该控件来弹出属性页面,可以方便的访问控件的属性和方法 ,减少代码的编写工作量。ArcGIS EngineArcGIS Engine控件概念控件概念v封装ArcObjects一每个ArcGIS控件都封装了粗颗粒度的ArcObjects,同时又提供对细颗粒度的ArcObject
31、s的访问,简化了开发过程。一如PageLayoutControl封装了PageLayout对象,PageLayout对象至少包含一个Map对象,而Map对象又可以包含一个或者多个图层对象。一ArcGIS控件是开发程序的起点,通过他们可以直接快速进入开发的对象模型。v事件一每个ArcGIS控件都会响应终端用户的键盘和鼠标交互而触发的事件。一在事件中加入响应交互的处理代码。ArcGIS EngineArcGIS Engine控件概念控件概念v伙伴控件一这种类型的ArcGIS控件不能单独使用,需要和另外一个控件一起协同工作。一ToolbarControl和TOCControl是伙伴控件一对应的伙伴控
32、件一般为:MapControl、PageLayoutControl、ReaderControl、SceneControl或GlobeControl控件。一可以通过属性页面来设置伙伴控件的关联属性。ArcGIS EngineArcGIS Engine控件概念控件概念v控件命令一ArcGIS Engine提供了一系列的命令、工具和菜单与ArcGIS控件系统工作。如放大、缩小、漫游等等。一开发人员也可以通过创建自己定义的命令、工具和菜单来使用ArcGIS Engine提供的命令集。一可以使用HookHelper、GlobeHookHelper和SceneHookHelper等对象来简化自定义的命令。
33、ArcGIS EngineArcGIS Engine控件概念控件概念提供超过100个工具和命令ArcGIS EngineArcGIS Engine控件概念控件概念v地图制作一ArcGIS控件可以装载使用ArcGIS DeskTop预定义的文档。如:ArcMap制作的MXD文档可以被MapControl和PageLayoutControl来加载。一使用预定一的文档可以节省开发时间,不需要从零开始编程建立地图及其符号化体系。ArcGIS EngineArcGIS Engine控件概念控件概念ArcGIS EngineArcGIS Engine开发控件开发控件v MapControl v PageL
34、ayoutControlv ToolBarControl v TOCControl v SceneControl v GlobelControl 3D3D控件控件v SceneControlSceneControl一一对应与桌面的对应与桌面的ArcSceneArcScene桌桌面应用程序的三维视图。拥面应用程序的三维视图。拥有导航功能,允许用户三维有导航功能,允许用户三维地显示地图数据。地显示地图数据。v GlobeControl GlobeControl 一一对应与桌面的对应与桌面的ArcGlobeArcGlobe桌桌面应用程序的三维视图。拥面应用程序的三维视图。拥有导航功能,允许用户三维有
35、导航功能,允许用户三维地显示地图数据。地显示地图数据。ReadControlReadControlv ReadControlReadControl一一对应于对应于ArcReaderArcReader桌面应用程桌面应用程序地序地“数据数据”和和“布局布局”视图视图及其内容表及其内容表“TOC”TOC”。一一ReadControlReadControl还包含有一定的还包含有一定的工具菜单,方便使用。工具菜单,方便使用。一一访问访问ArcGIS PublisherArcGIS Publisher扩展模扩展模块发布的块发布的PMFPMF数据。数据。目目 录录1 ArcGIS体系结构2 ArcGIS E
36、ngine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Engine开发环境与流程接口概念接口概念nCOM是微软提出的一种用于开发和支持程序对象组件的框架 ,是一种系统构架模型二进制规范,而不是指特定语言;COM是一种自我描述,自我生存的软件模块;它由操作系统的COM管理部分来注册和管理,并向所有应用开放。nCom是软件模块之间连接的协议,客户调用服务器并等待服务器的响应接口概念接口概念实例实例A A实例实例C实例实例B公共接口代理公共接口代理(接口查询,
37、实例创建。)应用接口应用接口代理代理nCOM通过一个叫接口的机制与外部程序打交道。所有的实例至少有一个叫公共接口代理的接口。外部程序可以通过对这个叫公共接口代理的调用可以获得其它接口信息。通过接口可以完成组件所要达到的功能目标。n接口Interface (抽象类)是组件间进行通讯的通道。同一接口在不同的组件类中实现的方法可以是不相同的(多态性)。接口与接口与ArcGISArcGIS的关系的关系nArcGIS正是在在这种组件技术的基础上搭建的,ArcGIS不但提供了基于图形用户界面的应用,而且提供了搭建这些应用的所有组件,这样为用户重新搭建他们自己的应用提供了巨大的空间。nArcGIS Engi
38、ne提供了基于COM、.NET、Java和C+的APIs,它支持4种开发环境(C、COM、.NET和Java),能够实现跨平台部署(Windows、UNIX和Linux)。 目目 录录1 ArcGIS体系结构2 ArcGIS Engine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Engine开发环境与流程1 1、对象模型图阅读、对象模型图阅读 n几个名词概念:UML:Unified Modeling Language 统一建模语言,是用来对软件密集系统
39、进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。OMD:Object model diagrams 对象模型图表。首先来看看OMD能帮我们做什么?1 该类支持哪些接口;2 完成任务需要哪些对象;3 如何使用该类的对象;4 是否可以直接实例化类;5 接口有哪些方法和属性;6 是否有其它类也支持该接口;7 对象间的关系这些符号是基于UML 画图工具创建的,UML 符号是面向对象分析和设计的工业图样标准。对象模型图中提供的信息非常多,是对象浏览器中信息的重要补充。Visual Basic,或者其它的开发环境,都会列出所有的类和成员,但不会指明这些类
40、之间的关系。所以,对象模型图是非常有利于读者对ArcInfo 组件的理解的!1. 类和对象类和对象在UML 图中有三种类型的类:抽象类(abstract class)、可创建类(createable class)与可实例化类(instantiable class)。l抽象类不能用以创建新对象,但可以用来指定子类。举个例子,“鸟”是“鸡”的抽象类。l可创建类指的是那些能够直接使用开发环境中的对象定义语法来创建对象。比如在Visual Basic 中是这样书写:Dim As New 或者CreateObject 。l可实例化类不能够直接创建新对象,但是这种类的对象能够作为其它对象的属性被创建或是从
41、其它类的方法中创建。-比较难理解。1 1、对象模型图阅读、对象模型图阅读 鸟鸟 AbstractAbstract鸟巢 CoClass鸡 CoClass羽毛羽毛 ClassClass翅膀翅膀 ClassClass蛋蛋 ClassClass*22. 关联关联在抽象类、可创建类和可实例化类之间,有几种存在的关联(或称关系)。联系(association)便描述了类之间的关联。在两端的类中可以定义多重性( Multiplicity)关联。 在这张图上,一个业主能有拥有一块或多块宗地;同样地,一块宗地可以被一个或多个业主所共有。多重性关联就是限制对象类与其它对象关联的数目关系。以下是用于多重性关联的符号
42、:1 一个并且只有一个,这种多样性是可选的;如果不标明,则默认为“1”0.1 零个或一个M.N 从M 到N(正整数)*或者0 * 从零到任意正整数1 * 从一到任意正整数 1 1、对象模型图阅读、对象模型图阅读 3、类继承类继承(type inheritance)定义了专门的类,它们拥有超类的属性和方法,并且同时也有自身的属性和方法。 上图说明primary line 和secondary line 是line 的一种类型。4、实例化实例化(Instantiation)指定一个类的对象有这样的方法,它能够创建另外一个类的对象。 pole 对象有一个方法能够创建transformer 对象。1
43、1、对象模型图阅读、对象模型图阅读 5、组成组成(Composition)是一种更为强壮的聚合方式,此种方式下,“整体”对象控制着“部分”对象的生存时间。 一个pole 包含一个或多个crossarm。在这个图中当pole 被移除后,crossarm 就不能再使用了。因为pole 控制着crossarm 的生存时间。1 1、对象模型图阅读、对象模型图阅读 6、OMD中的符号:中的符号:n一个三角形符号 表示继承n形的黑色小块 表示组成n线前头带个箭头 表示用来创建n* 表示对应关系1:Nn一条直线表示 联合1 1、对象模型图阅读、对象模型图阅读 6、OMD中的符号:中的符号:类的类别:类的类别
44、:n抽象类:抽象类:不能创建或实例化,从来没有一个抽象类的实例 用于定义子类的公共接口,子类继承其定义的接口。OMD符号为:二维的内部有阴影的矩形。n例化类:例化类:不能创建,从别的对象获得实例。 OMD符号为:3D矩形内部没有阴影n可创建的类:可创建的类:用New关键字创建对象或者从别的对象获得运行实例。OMD符号为:带阴影的3D矩形符号。1 1、对象模型图阅读、对象模型图阅读 6、OMD中的符号:中的符号:属性和方法:属性和方法:n属性:哑铃状的图标,Read(左侧的哑铃)和write(右侧的哑铃)n方法:指向左侧的箭头n接口:棒棒糖类型的图标n图表之间的连接:虫洞1 1、对象模型图阅读、
45、对象模型图阅读 7、入接口和出接口、入接口和出接口(Inbound interface,Outbound interface)COM调用既可以是单向的(即客户程序创建组件对象,然后客户程序调用对象所提供的功能,在适当时候再把对象释放掉),通常称为入接口。如果一个COM对象支持一个或多个主动与客户程序进行通信的接口,则这种接口称为出接口,是因为这些接口并不由对象实现,而是由客户程序实现.(类似回调函数,在对象模型图中表现为“事件”)1 1、对象模型图阅读、对象模型图阅读 个人感觉在OMD图中比较难理解的就是可实例化类CLASS。从下面的例子去理解它:ArcGIS Engine中 workSpac
46、e 就是一个可实例化类,WorkSpace不能用new创建,但可以通过WorkSpaceFarctory.Openfromfile()方法来创建.如下:IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(ConnectionString, 0);1 1、对象模型图阅读、对象模型图阅读 2 2、接口查找、接口查找快速得知ArcGIS Engine接口所属命名空间的几种方式 1.Visual Std
47、uio 2005中提供的智能感知(鼠标悬浮在接口上就能看到)或中提供的智能感知(鼠标悬浮在接口上就能看到)或“转转到定义到定义”(理论上提供(理论上提供F12快捷)快捷) 2.使用帮助文档的索引使用帮助文档的索引 ArcGIS的帮助文档可以说是非常强悍的,如下图所示:的帮助文档可以说是非常强悍的,如下图所示:3.使用使用AE自带的工具:自带的工具:【Library Locator】 这个工具的使用比较简单(如果用这个工具的使用比较简单(如果用.NET的话,勾选窗体下部的复选框),该工具的话,勾选窗体下部的复选框),该工具能够粘贴命名空间和能够粘贴命名空间和ProgID。 4.OMD OMD文档
48、结构图,理理接口之间的关系,能很大的帮助自己。文档结构图,理理接口之间的关系,能很大的帮助自己。 2 2、接口查找、接口查找目目 录录1 ArcGIS体系结构2 ArcGIS Engine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Engine开发环境与流程 Geodatabase实际上可以看成是我们在系统中所处理和使用的所有空间数据的实际上可以看成是我们在系统中所处理和使用的所有空间数据的一个智能库。物理上,数据被存放在数据库管理系统(一个智能库。物理
49、上,数据被存放在数据库管理系统(DBMS)中,其类型可以)中,其类型可以是各种各样的,包括:是各种各样的,包括:nVectornTopologynRasternNetworksnAddressesnTINsnRelationships and RulesnCADnMetadatanTablesGeodatabase数据模型使现实世界的空间数据对象与其逻辑数据模型更为接近。在数据模型使现实世界的空间数据对象与其逻辑数据模型更为接近。在geodatabase中,定义的不再是传统中,定义的不再是传统GIS对空间数据进行抽象后的对空间数据进行抽象后的“点点”、“线线”、“面面”等简单空间要素,而是应用
50、领域中熟悉的对象,如:杆塔、刀闸、电缆、道路、等简单空间要素,而是应用领域中熟悉的对象,如:杆塔、刀闸、电缆、道路、建筑、用地等。更重要的是建筑、用地等。更重要的是geodatabase使我们不需要编写任何程序代码即可实现数据使我们不需要编写任何程序代码即可实现数据对象主要的操作行为。大多数的操作行为都可以通过对象值域(对象主要的操作行为。大多数的操作行为都可以通过对象值域(Domain)、子类型)、子类型(Subtype)、规则等的定义以及)、规则等的定义以及ArcInfo提供的应用框架中丰富的其它功能来完成。提供的应用框架中丰富的其它功能来完成。 什么是什么是GeodatabaseGeod
51、atabase使用使用GeodatabaseGeodatabase的好处的好处 GeodatabaseGeodatabase是面向对象的空间数据模型,同时,是面向对象的空间数据模型,同时,ArcInfo中提供了中提供了智能化的工具和智能化的工具和CASE接口,供我们定义自己的数据对象,不但定义数据接口,供我们定义自己的数据对象,不但定义数据对象的空间几何特征,还可定义其规则、关系和操作行为。具体而言,对象的空间几何特征,还可定义其规则、关系和操作行为。具体而言,Geodatabase可以为我们带来如下好处:可以为我们带来如下好处: n统一的空间数据智能库:统一的空间数据智能库:系统中所有的空间
52、数据都可以统一地在同一数据库中存放和管理。n数据的一致性得以保证:数据的一致性得以保证:由于定义了规则和值域等,数据的录入和编辑都可以进行智能化的合法性校验,从而避免了数据的不一致性。n用户可以更直观地使用数据:用户可以更直观地使用数据:Geodatabase中的数据对象与领域应用中实际的空间要素更为接近,用户不再是面对在其应用领域没有特定意义的点、线、面等抽象的东西,而是直接操作他所熟悉的对象,如:变压器、电杆、高压线、刀闸、人井、道路、湖泊等。n空间要素不再孤立存在:空间要素不再孤立存在:在Geodatabase中,我们可以定义对象与对象之间的关系。于是我们可以描述或定义对一个空间要素而言
53、,如果与其相关的其它空间要素被移动、修改或删除时,对它会有何影响。这样,当我们移动一个电杆时,与其相连的电线就可以自动根据这种对象关系完成必要的移动,而无需人为干预。n可以更好地制图:可以更好地制图:借助Geodatabase数据模型,可以对空间要素的确绘制方法进行更多的控制。在ArcMap中,可以直接利用智能化的、复杂的制图方法。通过为空间数据对象的扩展编码,实现高度定制的绘制方法。n空间要素的几何形状可以更好地表示:空间要素的几何形状可以更好地表示:Geodatabase中支持直线(段)、圆弧、椭圆弧及Bzier曲线等。n连续的空间数据集合:连续的空间数据集合:Geodatabase中表示
54、大规模空间数据集合的方法是连续的,不需要对空间数据集进行分块或其它方式的切割,使逻辑模型和现实对象更加统一。n多用户并发操作:多用户并发操作:Geodatabase支持工作流访问模式,多个用户可以同时对同一区域中的空间要素进行编辑,通过版本管理(Versioning)解决可能的冲突以保障数据的一致性和安全性。 使用使用GeodatabaseGeodatabase的好处的好处 n Geodatabase可以用四种方式表达空间数据:离散的对象表示为矢可以用四种方式表达空间数据:离散的对象表示为矢量要素,连续的对象表示为栅格,表面表示为量要素,连续的对象表示为栅格,表面表示为TIN,地物定位参考表,
55、地物定位参考表示为地址(示为地址(locators and addresses)。)。nGeodatabase提供定义和管理空间数据集合的地理坐标系的框架。提供定义和管理空间数据集合的地理坐标系的框架。nGeodatabase可对空间上存在拓扑关联的空间数据进行空间建模,可对空间上存在拓扑关联的空间数据进行空间建模,譬如:设施网络、交通网络等。譬如:设施网络、交通网络等。nGeodatabase可在空间数据对象间定义任意的关联关系。可在空间数据对象间定义任意的关联关系。nGeodatabase可定义空间数据对象的值域、子类和规则。可定义空间数据对象的值域、子类和规则。nGeodatabase可
56、处理数据的多版本管理,以满足多用户并发的长事可处理数据的多版本管理,以满足多用户并发的长事务处理需求。务处理需求。GeodatabaseGeodatabase对对DBMSDBMS有何扩展有何扩展目目 录录1 ArcGIS体系结构2 ArcGIS Engine是什么3 ArcGIS Engine的主要功能4 ArcGIS Engine类库5 ArcGIS Engine控件6 接口的概念7 对象模型图的阅读8 什么是地理数据库9 ArcGIS Engine开发环境与流程ArcGIS EngineArcGIS Engine开发所需要的预备知识开发所需要的预备知识v 理解 COM 组件技术v 了解一门
57、编程语言 (VB, .NET, VC+, Java)v 怎么使用 ArcObjectsv 知道开发者资源v 理解授权与部署的模型v 注:不管何种开发方式,使用ArcGIS Engine进行应用程序的开发成功与否取决于开发人员掌握的编程环境和ArcObjects的技能。如何开始如何开始.Net.Net的的EngineEngine开发开发? ?v 安装Visual Studio 2005 (Express or Professional)n .NET 2.0 SDK 和 Runtime n http:/ 安装 .NET 的ArcGIS Engine Runtimen 包括开发包(developer kit)v 安装 ArcGIS E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度海上工程船舶租赁光租赁合同(04版)
- 二零二四年度能源供应合同模板
- 加工合作合同的技术规范
- 培训班合作合规协议
- 转让协议与合同的法律关系探讨
- 农村自建房买卖合同的贷款政策
- 住宅装修工程分包协议
- 沥青路面施工安全措施落实购销合同
- 精密机械转让协议书
- 甲方购销合同操作
- 经典广告案例
- 《1980年代“现代派”论争中的现代主义与现实主义问题》
- 材料成型及控制工程基础知识单选题100道及答案解析
- 2024年保育员(中级)考试题库(含答案)
- 环保项目设备采购实施方案
- 数学-江西省稳派上进联考2024-2025学年2025届高三上学期11月调研测试试题和答案
- 2024-2025学年北京十三中分校八年级(上)期中数学试卷
- 湖南财政经济学院《证券投资学》2022-2023学年第一学期期末试卷
- MOOC 大学英语视听导学-湖南大学 中国大学慕课答案
- 2024年《大学语文》期末考试复习题库(含答案)
- XX学校学籍核查工作汇报
评论
0/150
提交评论