MapGisK9平台二次开发教程.doc
《MapGisK9平台二次开发教程.doc》由会员分享,可在线阅读,更多相关《MapGisK9平台二次开发教程.doc(349页珍藏版)》请在三一办公上搜索。
1、MapGis K9 平台二次开发教程2010年12月武汉内容简介MapGIS K9是新一代面向网络超大型分布式地理信息系统基础软件开发平台。该平台融合了中地数码集团在20多年中与各领域的专家及客户实施地理信息系统所积累的功能资源,并在该基础上实现了二三维一体化的动态管理、GIS与遥感影像处理平台的无缝集成,使得MapGIS K9成为集GIS、RS、GNSS为一体的集成开发平台。Mapgis服务器开发平台(DCServer)是MapGIS K9平台的核心,是其跨平台技术的集合。该平台提供对服务器的管理、空间数据仓库支持、空间功能仓库支持,是数据中心集成开发平台(数据中心)应用的基础;为MapGI
2、S K9遥感处理开发平台、三维GIS开发平台、互联网GIS开发平台、嵌入式开发平台提供统一的基础功能组件,是各子平台强有力的技术支撑。同时,DCServer为用户提供更完备的空间数据管理、更高质量的数据可视化展现、分析处理及输出和更好的可用性。Mapgis K9平台二次开发教程详细地介绍了基于CS模式的平台二次开发的原理和方法。全书共分六章,分为两个专题:组件式和插件式。其中前四章由浅入深地介绍了组件式开发,依次介绍了COM原理、组件体系架构、系统环境配置、组件基础开发、组件进阶开发,以及地质灾害系统的项目实践。后面两章介绍了插件式开发,包括插件开发的基础和各种类型插件开发的实战。全书两个专题
3、都是均以基础知识入手,结合具体的示例,循序渐进的引导大家进行基于CS模式的Mapgis K9平台二次开发。每章前列出学习本章的目的要求、主要内容、重点难点,让读者做到阅读前心中有数,阅读中思路逻辑清晰。每章基本内容结束之后,都有一个本章小结,并对下一章的内容进行一些说明,承上启下,便于读者及时梳理学过的知识并对即将要接触的内容有个清晰地认识。本书MapGIS K9 平台二次开发教程,适用于基于CS 模式的GIS二次开发感兴趣的初中级用户,也可作为大中专院校相关专业的教材。前 言本书基于具有自主知识产权的MapGIS K9开发平台,全面、详尽地讲解了CS模式下如何进行GIS应用开发。从基本的概念
4、入手,结合整个框架体系,有浅入深,功能与示例相结合的模式,并以具体的应用系统作为实践,一步一步引导读者更加轻松地学习和掌握组件式和插件式这两种CS模式下的平台开发方式。本书以“简便、高效”的开发为目标,遵循“循序渐进”的原则,在内容和结构上均作了精心的设计与安排。基于二次开发学习的技术思路,采用理论结合实践的方式,每个功能点均以“1+1”模式,即“原理方法+具体示例”的方式展现,生动具体,偏向于实际应用,实用性强。各个章节内容一步一步提升,呈阶梯式,更方便读者理解把握。由于时间仓促,书中难免存在错误与不当之处,欢迎广大读者及专家同行批评指正,以利改进。本书内容结构n 第1章主要介绍了组件式开发
5、的原理及K9平台组件的体系架构并辅以简单的入门程序n 第2章组件式基础开发,介绍了数据管理、文档管理、查询分析、空间分析以及网络类管理的原理及具体实现n 第3章组件式进阶开发,结合具体实例,深入剖析各应用专题,包括专题图应用、动态投影、动态注记、数据加密解密以及符号库管理n 第4章组件实战,以地质灾害系统为例,详细介绍了系统的整个实现过程,包括包括需求分析、系统设计与具体实现n 第5章插件开发基础,介绍了插件的概念以及插件开发的框架,并辅以一个简单视图插件的实现示例n 第6章插件开发实战,详细介绍了工具插件、视图插件以及交互插件的具体实现目的要求、主要内容、重点难点在每章的前面,有三个部分:“
6、目的要求“说明了学习该章掌握的内容;“主要内容“列出了该章介绍的的知识点,让读者对该章内容有整体把握;“重点难点“指出学习该章的重点内容与难点所在,读者可以有目的并带着问题去学习,提高效率。光盘使用说明本书附带一张光盘,光盘中包括所有示例源码资源下载说明目 录MapGis K9 平台二次开发教程I内容简介II前 言III第1章 K9平台二次开发入门11.1相关技术:COM基本原理及组件GIS概述21.1.1COM的概念21.1.2接口简介21.1.3组件创建31.1.4复用31.1.5组件式GIS41.2二次开发的特点及相关体系结构51.2.1二次开发特点51.2.2组件体系架构61.3核心控
7、件及组件功能说明81.3.1MapGis K9控件81.3.2MapGis K9组件81.4系统环境配置131.4.1安装MapGis K9许可证服务131.4.2安装MapGis K9平台181.4.3安装.net 2005开发环境201.5快速入门实例251.5.1入门实例功能说明251.5.2入门实例功能实现251.6小结37第2章 组件式基础开发382.1文档管理与操作382.1.1地图管理382.1.2图层管理462.1.3版面管理512.2数据管理与操作552.2.1数据库服务器及数据库操作552.2.2简单要素类操作662.2.3要素操作752.2.4属性结构操作862.2.5属
8、性记录操作912.3数据查询952.3.1属性查询962.3.2点查询982.3.3矩形查询1002.3.4多边形查询1022.3.5属性空间查询1042.3.6图形信息查询1062.4空间分析1072.4.1叠加1082.4.2裁剪1192.4.3缓冲区分析1242.5投影变换1282.5.1单点投影1302.5.2简单要素类投影1352.6网络类管理1372.6.1查找连通及非连通元素1382.6.2路径分析1432.6.3多车配送1462.6.4资源分配1482.6.5定位分配1502.6.6追踪分析1542.7小结155第3章 组件式进阶开发1563.1专题图制作1573.1.1功能说
9、明1573.1.2功能实现1583.2动态投影1803.2.1功能说明1803.2.2功能实现1803.3动态注记1843.3.1功能说明1843.3.2功能实现1843.4数据加密解密1893.4.1功能说明1893.4.2功能实现1893.5自定义绘图及交互1943.5.1功能说明1943.5.2功能实现1943.6符号库及符号编辑2003.6.1功能说明2003.6.2功能实现2013.7小结204第4章 组件实战(地质灾害系统)2064.1需求分析2074.1.1系统环境要求2074.1.2系统功能需求2074.2实现方案2084.2.1系统架构2084.2.2实现模式2084.2.3
10、数据组织2094.2.4功能模块2104.3具体实现2144.3.1数据库设计2144.3.2功能模块实现2184.4小结272第5章 插件开发基础2735.1插件开发概述2745.2插件开发框架2755.2.1框架结构2755.2.2MPIApplication(插件管理器)2765.2.3地图文档2775.2.4图层2785.2.5基本插件 (IObjectCategory)2805.2.6透视图(MPIEmbedView)2805.2.7工具集(MPIGroupTool和MPICommand )2815.2.8界面服务(WPIManager)2825.3插件开发要求2835.3.1加载与
11、卸载插件2835.3.2消息传递2835.3.3定制插件的依赖关系2845.3.4定制工具和视图之间的绑定2845.4插件开发入门2845.4.1入门实例功能说明2845.4.2入门实例功能实现2845.5小结295第6章 插件开发实战2966.1工具插件2976.1.1功能说明2976.1.2功能实现2976.2视图插件3156.2.1功能说明3156.2.2功能实现3156.3交互插件3276.3.1组件提供交互实现3276.3.2自定义交互实现3306.4小结355附录B:常见问题356参考文献357第1章 K9平台二次开发入门【目的要求】本章通过通俗而浅显的语言,简单的示例,力求用户轻
12、松地了解COM以及整个Mapgis K9二次开发平台的体系架构,希望您通过本章的学习,对平台二次开发有个初步的认识,并且能够亲自动手实现最基本的GIS功能,为后面深入地进行二次开发打好良好的基础。【主要内容】简单浅显地介绍组件的核心和相关组件GIS的概念,深入了解整个k9二次开发平台体系架构,并辅以简单的入门程序n 简单介绍COM核心概念n 组件式GIS的特点及层次n K9二次平台的体系架构n 入门程序的实现【重点难点】本章的重点是了解组件的相关技术,包括COM 、接口 、复用等,掌握k9开发平台的体系架构,通过初步的实践而更加深刻地理解。如果对Mapgis K9平台不太了解,那么对二次开发平
13、台的体系架构的理解将会是个难点。为了更加方便、高效地进行mapgis应用开发,MapGis K9采用了全组件化设计,提供了功能全面OLE控件(OCX)和一系列组件。它适用于工业标准程序环境,专门为程序开发者设计,使开发者可以更专注于功能设计,而不是去学习如何实现GIS的核心功能1.1 相关技术:COM基本原理及组件GIS概述1.1.1 COM的概念COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉
14、,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言、平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块;等等。COM,即组件对象模型,是关于如何建立组件以及如何通过组件建立应用程序的一个规范,说明了如何可动态交替更新组件。使用组件的优点:1.组件架构的一个优点就是应用可以随时间的流逝而发展进化。除此之外,使用组件还有一些可以使对以有应用的升级更加方便和灵活的优点,如应用的定制,组件库以及分布式组件等。2.使用组件的种种优点直接来源于可以将它们动态的插入或卸出应用。为了实现这种功能,所有的组件必须满足两个条
15、件:第一,组件必须动态链接;第二,它们必须隐藏(或封装)其内部实现细节。动态链接对于组件而言是一个至关重要的要求,而消息隐藏则是动态链接的一个必要条件1.1.2 接口简介对于COM来讲,接口是一个包含一个函数指针数组的内存结构。每一个数组元素包含的是一个由组件所实现的函数地址。对于COM而言,接口就是此内存结构,其他东西;均是COM不关心的实现细节。在C+中,可以用抽象基类来实现COM接口。由于一个COM组件可以实现支持任意数目的接口,因此对于这样的组件,可以用抽象基类的多重继承来实现。用类来实现组件将比其他方法更为容易。对于客户来说,一个组件就是一个接口集。客户只能通过接口才能和COM组件打
16、交道。从整体上讲,客户对于一个组件可以说是知之甚少的。通常情况下,客户甚至不必知道一个组件所提供的所有接口。客户同组件的交互是通过接口完成的。在客户查询组件其他的接口时,也是通过接口完成的。这个接口就是IUnknown。所有的COM都要继承IUnknown。可以用Iunknown的接口指针来查询该组件的其他的接口,并且每个接口的vtbl中的前三个函数都是QueryInterface,AddRef和Release。这使得所有的COM接口都可以被当作成IUnknown接口来处理。由于所有的接口都支持QueryInterface,因此组件的任何一个接口都可以被客户用来获取它所支持的其他接口。1.1.
17、3 组件创建将组件分成多个接口只是将单模应用分个成多个部分的第一步,组件需要被放入动态链接库(DLL)中。DLL是一个组件服务程序,或者说是发行组件的一种方式。组件实际上应看成是在DLL中实现的接口集。在客户获取某个组件接口指针之前,它必须先将相应的DLL装载到其进程空间中,并创建此组件。由于客户组件所需要的所有函数都可以通过某个接口指针而访问到,因此,可以在DLL中引出CreatInstance函数就可以使用户调用它。之后,可以装载DLL并调用其中的函数。此功能可由COM库函数CoCreateInstance来实现。CoCreateInstance创建组件的过程是:传给它一个CLSID,然后
18、它创建相应的组件,并返回指向所请求的接口的指针。但CoCreateInstance没有给客户提供一种能控制组件创建过程的方法,缺乏一定的灵活性。事实上,常用类厂来创建组件。类厂就是一个带有能够创建其他组件的接口的组件。客户先创建类厂本身,然后再用一个接口(如IClassFactory)来创建所需的组件。然后还要用DllRegisterSever在Windows中注册这个组件1.1.4 复用COM组件可以被复用,它支持接口继承。这种继承指的是一个类继承其基类的类型或接口。抽象基类是一种最纯粹的接口继承,并且正好也被用来实现COM接口。在COM中,我们可以用包容和聚合来对组件进行改造。包容是在接口
19、级完成的。外部组件包含指向内部接口的指针。此时,外部组件仅仅是内部组件的一个客户而已,它将使用内部组件的接口来实现它自己的接口。外部组件也可以通过将调用转发给内部组件的方法来重新实现内部组件所支持的某个接口。并且外部组件还可以在内部组件代码的前后加上一些代码以对接口进行改造。聚合是包含的一种变化形式。当外部组件聚合了某个内部组件的一个接口时,它并没有象包容那样重新实现此接口并显式的将调用请求转发给内部组件。相反,外部组件直接把内部组件的接口指针返回给客户。使用这种方法,外部组件将无需重新实现并转发接口中的所有函数了。包容和聚合为实现组件的复用提供了一种极具鲁棒性的机制。在组件构架下,客户于组件
20、的实现完全隔离开了1.1.5 组件式GIS随着计算机软件技术的发展,GIS组件化发展到了一个全新的阶段,出现了组件式GIS(Components GIS,缩写为ComGIS)。组件式GIS基于标准的组件式平台,各个组件之间不仅可以进行自由、灵活的重组,而且具有可视化的界面和使用方便的标准接口。组件式平台主要有Microsoft的COM(Component Object Model,组件对象模型)/DCOM(Distributed Component Object Model,分布式组件对象模型)和OMG的CORBA(Common Object Request Broker Architectu
21、re,公共对象请求代理体系结构),目前Microsoft的COM/DCOM占市场领导地位。基于COM/DCOM,Microsoft推出了ActiveX技术,ActiveX控件是当今可视化程序设计中应用最为广泛的标准组件。新一代的组件式GIS也大都是ActiveX控件或者其前身OLE控件。简单地说,组件式GIS就是采用了面向对象技术和组件式软件的GIS系统(包括基础平台和应用系统)宋关福等,1999。组件式GIS的基本思想是把GIS的各大功能模块划分为几个组件,每个组件完成不同的功能。各个GIS组件之间,以及GIS组件与其它非GIS组件之间,都可以方便地通过可视化的软件开发工具集成起来,形成最终
22、的GIS基础平台以及应用系统。1.组件式GIS的特点 把GIS的功能适当抽象,以组件形式供开发者使用,将会带来许多传统GIS工具无法比拟的优点。(1) 小巧灵活、价格便宜,在组件模型下,各组件都集中地实现与自己最紧密相关的系统功能。组件化的GIS平台集中提供空间数据管理能力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统GIS开发工具的十分之一,甚至更少。这样,用户便能以较好的性能价格比获得或开发GIS应用系统。(2) 直接嵌入MIS开发工具组件的生产建立在严格的标准之上,因此,凡符合标准的组件都可在目前流行的各种开发工具上使用。这样,VB、VC、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MapGisK9 平台 二次开发 教程
链接地址:https://www.31ppt.com/p-2391353.html