MapGisK9平台二次开发教程_第1页
MapGisK9平台二次开发教程_第2页
MapGisK9平台二次开发教程_第3页
MapGisK9平台二次开发教程_第4页
MapGisK9平台二次开发教程_第5页
已阅读5页,还剩345页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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、

23、delphi、powerbuilder、notes、foxpro、access等都可直接成为gis或gmis的优秀开发工具,它们各自的优点都能够得到充分发挥。这与传统gis专门性开发环境相比,是一种质的飞跃。(3) 强大的gis功能,新的gis组件都是基于32位系统平台的,采用inproc直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统gis软件逊色。小小的gis组件完全能提供拼接、裁剪、叠合缓冲区等空间处理能力和丰富的空间查询与分析能力。(4) 开发简捷,由于gis组件、可以直接嵌入mis开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具。而且,gis组件提

24、供的api形式非常接近mis工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。在gis或gm开发人员能够较快地过渡到gis或gmis的开发工作中,从而大大加速gis的发展。gis的开发过程中,开发人员的素质与熟练程度是十分重要的因素。这将使大量的mis开发人员能够较快地过渡到gis或gmis的开发工作中,从而大大加速gis的发展。2. 组件式gis开发平台的结构组件式gis开发平台通常可设计为三级结构:基础组件:面向空间数据管理,提供基本的交互过程高级通用组件:面向通用功能行业性组件:抽象出行业应用的特定算法,固化到组件中,进一步加速开发过程1基

25、础组件:处于平台最低层,是整个系统的基础,主要面向空间数据管理,提供基本的交互过程,并能以灵活的方式与数据库系统连接。2高级通用组件:高级通用组件由基础组件构造而成。它们面向通用功能,简化用户开发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装后,使二次开发更为简单。如一个编辑查询系统,若用基础平台开发,需要编写大量的代码,而利用高级通用组件,只需几句程序就够了。3行业性组件:以gps监控为例。对于gps应用,除了需要地图显示、信息查询等一般的gis功能外,还需要特定的应用功能,如动态目标显示、目标锁定、轨迹显示等。这些

26、gps行业性应用功能组件被封装起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的颜色、锁定的目标,以及调用、接受数据的方法等1.2 二次开发的特点及相关体系结构1.2.1 二次开发特点1. mapgis k9提供了一套完整的且功能齐全的组件和控件,开发gis应用系统只需要灵活地应用它们,非常方便简洁2. 易于集成3. 根据开发应用系统的规模大小,可以有目的地选择gis组件和控件,有效地控制系统成本及风险4. 支持多种开发语言,只要这种设计语言支持com,如vc+、vb、delphi、c#、power builder等5. 多层次访问mapgis组件的数据层、功能层、界面层1.2.2

27、组件体系架构从二次开发平台整体架构上来看,主要分成两个层次:数据表现层和数据管理层。数据管理通过空间数据库引擎(sde)来驱动,实现了对海量多源异构空间数据的高效存储与索引;而数据表现层则主要是向用户展示成果数据,支持动态局部刷新,数据视图和版面视图的统一管理等空间数据管理空间数据表现1.数据管理层如下图1-1所示,工作区控件管理所有的数据和资源,它通过gdbserver(数据库服务器)管理gdb(地理数据库),而gdb则管理着所有的空间数据(包括矢量和栅格数据)。图1-1二次开发数据管理层架构图图1-2 二次开发数据表现层架构图2.数据表示层:如上图1-2所示,mapgis通过视图控件map

28、xview来显示地图数据,并且可以通过使用编辑控件mxeditcontrol来对地图进行编辑 或者进行空间分析、网络分析等操作图1-3二次开发总体层次图3.二次开发层次,如上图1-3所示,数据管理可以通过数据库服务器来进行,而数据的编辑处理通过地图文档来进行操作,而不论是数据管理还是数据编辑,都可以通过工作空间这个控件统一管理;数据的显示不但可以显示文档数据,也可以直接显示数据库里存储的空间数据1.3 核心控件及组件功能说明1.3.1 mapgis k9控件mapgis k9提供了一套功能强大的控件,由一系列的activex控件组成,包括工作空间控件、地图显示控件、地图编辑控件等。下面是部分控

29、件列表:n mxworkspace 控件:地图文档的管理、多数据源的管理、空间数据的管理、系统库的管理等;n mapxview控件:包括对窗口的放大 、缩小、更新、复位、移动、选显示模式的设置等操作,用于显示用户添加的地图数据;n mxdoctreeview控件:提供了新建地图文档、添加图层、删除图层等操作的树型可视化控件;n mxeditcontrol控件:提供了通用编辑、拓扑编辑以及注记编辑的常用功能,用户可直接使用该模块下提供的方法进行如:输入线、拓扑构建等操作n mxgisgrid控件:该控件主要用来显示地图数据的属性信息,并提供了事件获取所选择的记录的相关详细信息n mxmaplib

30、ctrl控件:该控件提供了对系统库操作的接口,包括颜色库、符号库和字体库n mxthemetreeview控件:该控件提供制作各种专题图,比如单值、分段、统计等专题图,也提供了专题图的导入导出xml格式,都是通过其右键菜单来实现的,功能和基础平台提供的专题视图是吻合的1.3.2 mapgis k9组件组 件组件说明mapxbase提供了有关地图和图层相关的操作,以及坐标转换和自定义绘图方面的的功能mc_basobj7lib提供了大量的mapgis基本对象的定义,比如要素、属性结构、属性等mc_basxcls7lib提供了基本的对象类和数据集以及相关对象的定义及操作mc_gisconv提供了各种

31、数据转换的函数,包括e00、shape、mif、dxf、txt到x的转换以及6x到x、7x之间的各种转换mc_mapset7lib主要是进行地图集的创建、查询、分析等操作mc_projsyslib主要提供了各种方式的投影参数的取、设置和单点、多点投影及各种球面计算mc_spc_anly70lib主要是进行空间运算和buffer分析以及拓扑差错等空间分析的功能mx_gistoollib提供了一些在工具箱中提供的功能,比如数据加密解密、属性统计、数据迁移、各种对象类的创建等mc_basrasterlib提供了栅格数据管理常用的操作mc_rastertoollib栅格工具,提供了对栅格数据的裁减、转

32、换、分析等功能 组件列表 常用组件接口说明接口 (mapxbase组件)说明ixdisplay自定义绘图ixtransformation提供坐标转换和获取设置范围ixmap提供地图操作功能ixmaplayer提供图层操作功能ixlayout提供版面操作接口ixlayoutframe提供排版框操作接口ixcartoelement制图元素接口ixsfeaturelayer提供简单要素类图层接口ixrasterlayer提供栅格数据集图层接口ixannotationlayer自定注记类图层接口ixfeaturelayer提供要素类图层接口ixmapselection提供地

33、图选择集接口ixlabelinfo提供动态注记信息接口ixlabellininfo线动态注记接口ixlabelpntinfo点动态注记接口ixlabelreginfo区动态注记接口ixlabelstrinfo动态注记字符信息接口对象 (mc_basobj7lib组件)说明mc3dots3维坐标点集mc3dot3维坐标点mcaclsinfo注记类信息mcanndata注记类数据mcanndimdata维注记数据mcannhtmldatahtml注记数据mcannstrdata文本注记数据mcattrule属性规则mccodedomain编码域mcconflictitem冲突项(某一个类)mcco

34、nflictlist冲突列表(某个gdb)mcconflictset冲突集(某个gdb)以下省略,请参照帮助文档对象 (mc_basxcls7lib组件)说明mcannotationcls注记类对象mcarcoper空间弧段操作mcarcset空间弧段集合mcdotoper空间点操作mcdotset空间点集合mcfeaturecls要素类对象mcfeatureoper要素操作对象mcfeatureset要素数据集合mcgdatabase地理数据库对象mcgdbserver服务器对象mcginfoper图形信息操作mcginfset图形信息集合对象mcglinoper几何线操作mcglinset

35、几何线集合mcgpntoper几何点操作mcgpntset几何点集合mcgregoper几何区操作mcgregset几何区实体集合mcobjectcls对象类mcrecordset记录集合mcrelationcls关系类mcrelationset关系集合对象mcselectoption选择操作方式对象mcselectset选择集对象mcsfeaturecls简单要素类对象 (mc_gisconv组件)说明mcgisconve00、shape、mif、dxf、txt数据添加或者拷贝到7xmcgismove 6x数据到7x要素类简单要素类以及x数据要素类简单要素类之间的转换mcgisocioper

36、6x/7x数据转换成x对象类mcgisacioper6x/7x数据转换成x类注记对象 (mc_spc_anly70lib组件)说明mccrosstruct弧段自相交mcspatialanalysis2简单要素类空间分析mctopocheckoption拓扑查询选项mctopoerror拓扑错误mcoverlayoption空间叠加mctopobuffer2简单要素类buffer分析mctopoerrorinfo拓扑错误信息mctopooption拓扑选项对象 (mc_gistoollib组件)说明mcgdbencrypt数据加密解密对象mxbastool 基础工具集对象1.4 系统环境配置 1

37、.4.1 安装mapgis k9许可证服务 关于 mapgis k9 许可证管理服务必须在mapgis k9 许可证服务的支持下,才能正常安装、使用mapgis k9 sp2 产品。mapgis 许可证服务器可以安装配置在任何一台装有mapgis k9 usb 加密狗的windows 电脑上。每一个加密狗都对应一个唯一的安装密码,在安装许可证服务器时必须输入正确的安装密码。第一次安装mapgis k9 许可证服务时,系统自动生成一组注册码及一个临时证书,可以使用临时证书完成安装过程。临时证书使用期限为30天,您可以使用临时证书在30天期限内使用 mapgis k9 sp2 产品。

38、您可以通过您的加密卡序列号和注册码获取永久证书以获得永久使用期限。 您可以通过访问中地公司站点:http:/www.mapgis 获得永久证书。 安装许可证服务器mapgis k9 许可证服务器可以安装配置在任何一台装有mapgis k9 usb 加密狗的windows 电脑上。许可证服务器可以单独安装在服务器上,也可以和mapgis k9 sp2应用产品一起安装在服务器上。您可以按下述方法安装许可证服务管理器:插入mapgis k9 usb 加密狗;以管理员身份登录系统,确保服务器上 10001 端口打开;关闭服务器上所有打开的应用程序;执行安装光盘中的许可证服务器安装程序开始

39、安装:图 1-4 欢迎界面根据安装向导的提示信息继续安装,在安装过程中请如下图 1-5 所示的界面中输入安装密码继续进行安装:图 1-5 安装密码一旦您安装完毕,安装程序会在您的服务器上自动运行mapgis 许可证服务,如下图1-6所示: 图 1-6 许可证服务 常见问题n 网络防火墙相关问题mapgis许可证服务使用端口:10001 进行通讯。如果您的电脑上安装有防火墙软件,请您确认10001 端口可以正常使用.如果您使用的是windows 自带的防火墙,您可以按照下述方法打开 10001 端口:1. 通过“控制面板”-“安全中心”打开windows 防火墙设置程序;图1-7

40、设置windows 防火墙2. 打开“例外”属性页;图 1-8 设置例外信息3. 单击“添加端口”按钮,在如图 1-9 所示对话框中添加端口信息;图 1-9 添加端口4. 确定后关闭 windows 防火墙设置程序;如果您使用第三方厂商提供的网络防火墙软件,请参考该软件的使用手册进行设置,确保10001 端口可以正常访问。n 和部分软件冲突问题如果您的电脑上装有 qq地址栏搜索插件和(或) 中文上网插件,将有可能导致mapgis 应用程序不能正常启动。请您打开“添加/删除程序”对话框(“控制面板”“添加删除程序”),检查您的电脑中是否安装有这些软件;如果有,您可以单击“更改/删除”按钮删除这些

41、软件。n dell 部分机型网络相关程序冲突问题dell品牌机部分机型中预装有网络应用程序tcsd_win32.exe。如果该程序正在运行,将有可能导致mapgis应用程序不能正常启动。请您打开windows 任务管理器,检查进程中是否有映像名称为:tcsd_win32.exe的进程,如果有该进程,您可以单击“结束进程”按钮结束该进程。n windows 未及时更新导致许可证服务程序崩溃问题如果您的电脑上安装的windows 操作系统未及时更新,在mapgis k9 客户端程序连接许可证服务时,许可证服务程序有可能崩溃,如下图示:图 1-10 证书服务错误如果出现如图1-10 所示错误,您可以

42、通过网络更新windows 操作系统。强烈建议您使用windows 自动更新服务保持您的计算机最新。1.4.2 安装mapgis k9平台(1) 直接运行mapgis k9 sp2 企业版或者数据中心集成开发平台安装程序,打开安装界面进行安装;图 1-11 欢迎界面(2) 安装系统必备组件,安装程序会自动检测并安装相关的组件图 1-12 必备组件安装界面(3) 选择mapgis许可证服务器,如果本机上已经安装了许可证服务器,并成功启动了许可证服务,可以选择本地许可证服务器;或者您也可以选择网络中一台安装了许可证服务器的机器,输入主机名或者主机ip地址即可 图 1-13 许可证服务器界面(4)

43、选择自定义安装,您可以修改安装路径,选择要安装的平台产品,其中核心组件和二次开发组件是进行组件式二次开发必备的图 1-14 许可证服务器界面(5) 选择设置完成后,安装程序会自动进行程序安装1.4.3 安装.net 2005开发环境具体的安装步骤如下:(6) 直接运行microsoft visual studio 2005安装程序,打开安装界面进行安装;图 1-15 vs2005安装界面图 1-16 加载vs2005安装组件(7) 加载完microsoft visual studio 2005安装组件,开始逐步安装,即先接受许可协议、选择安装功能与安装路径、然后进行安装;图 1-17 许可协议

44、界面图 1-18 选择功能与安装路径图 1-19 选择功能模块图 1-20 正在安装vs2005(8) microsoft visual studio 2005安装完成后,单击“完成”按钮退回到安装程序界面,最后单击“退出”按钮即可。图 1-21 成功安装vs2005图 1-22 退出安装界面1.5 快速入门实例1.5.1 入门实例功能说明本实例将一步一步地引导您实现的gis功能如下:n 打开及保存地图文档n 基本编辑功能:输入点线面n 基本查询功能:点查询及属性查询n 图属联动1.5.2 入门实例功能实现(9) 启动vs2005,选择新建项目,在项目类型中选择程序语言为c#,在模板中选择wi

45、ndow应用程序,输入项目名称,修改项目保存的路径,如下图所示:图 1-23 新建项目界面(10) 启动vs2005,在解决方案管理器右键选择form.cs,选择查看设计器,切换到设计视图。在工具箱空白的地方右键选择添加选项卡,自定义一个选项卡的名称,生成选项卡之后,右键选择该选项卡,在弹出窗口中点击选择项,在弹出的选择工具箱项的窗口中选择com组件,然后逐一选择要添加的gis控件:mxeditconnector、mxdoctreeview、mapxview、gisgrid、mxworkspace,如下图所示:图 1-24 控件选择界面(11) 在设计视图中进行窗口的布局,往窗口中拖入一个菜单

46、条menustrip,进行菜单项目的设计;再往窗口中拖入两个容器:切分容器splitcontainer,修改splitcontainer的属性orientation,一个修改为:vertical,另外一个修改为:horizontal,如下图所示:图 1-25 界面布局界面(一)(12) 往窗口的切分容器中拖入相关mapgis的控件,并设置有界面控件的属性dock,修改为:fill,设置完成后,如下图所示:图 1-26 界面布局界面(二)(13) 启动双击form1的边框,添加form1_load事件,或者通过form1的属性视窗,在事件中选择load事件,也可以完成同样的功能;切换到代码视窗,

47、在form1_load中添加代码(程序代码1.1)如下: 程序代码 1.1 startstudy程序代码 private void form1_load(object sender, eventargs e) /关联视图和工作空间控件 this.axmapxview1.workspace = this.axmxworkspace1.tointerface; /关联文档树和工作空间控件 this.axmxdoctreeview1.workspace = this.axmxworkspace1.tointerface; /关联编辑与工作空间和视图控件 this.axmxeditcontrol1.w

48、orkspace = this.axmxworkspace1.tointerface; this.axmxeditcontrol1.editview = this.axmapxview1.tointerface; /添加组工具(编辑扩展和通用编辑) this.axmxeditcontrol1.addgrouptool(编辑扩展, editextension.editextension.1); this.axmxeditcontrol1.addgrouptool(通用编辑, mainedit.editgroup.1); 代码说明:前四句都是控件与控件之间的关联, mapxview用于数据显示,m

49、xeditcontrol用于编辑,mxdoctreeview用于显示文档树的树形结构,mxworkspace用于数据管理,因此前三者都需和mxworkspace进行关联,而mxeditcontrol所进行的数据编辑是通过命令式触发的形式来进行,靠鼠标和视图的交互来实现相关功能,因此提供了editview属性来和视图控件mapxview进行关联;最后的两句是通过mxeditcontrol来添加组工具,这是因为平台的整体架构是框架+插件的模式,组工具就是其中的工具插件,只有在框架中加载了相应的插件,才可以使用插件提供的相应的功能(14) 双击相应的菜单项,添加其响应事件,实现文档及地图编辑的相关功

50、能,相关代码如下: 程序代码 1.2 startstudy程序代码private void 打开地图文档toolstripmenuitem_click(object sender, eventargs e) /打开地图文档 this.axmxworkspace1.open(null, workspace.enumopenmode.opennormal); private void 保存地图文档toolstripmenuitem_click(object sender, eventargs e) /另存地图文档 this.axmxworkspace1.saveas(null); private

51、void 输入点toolstripmenuitem_click(object sender, eventargs e) /输入点 this.axmxeditcontrol1.starttool(inputpntparam, 1, 1); private void 输入线toolstripmenuitem_click(object sender, eventargs e) /输入折线 this.axmxeditcontrol1.starttool(inputbrokenline, 1, 1); private void 输入区toolstripmenuitem_click(object sender, eventargs e) /输入区 this.a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论