ArcGIS Engine二次开发(一)

1.概述

1.1 GIS

​ 地理信息系统(Geographical Inormation System,简称GIS):是十种在计算机软硬件支持下,以空间位置为主线,以采集、存储、管理、检索、分析和描述空间物体的定位分布及与之相关的属性数据,并回答用户问题等为主要任务的计算机系统。

1.2 GIS的基本组成

软硬件、用户、模型、数据库

1.3 GIS工作流程

ArcGIS Engine二次开发(一)_第1张图片

1.4 GIS特有的功能

位置、条件、趋势、模式、模型

1.5 GIS的应用

资源管理、区域规划、国土监制、航空航天、军事

1.6 GIS的分类

工具型

应用型

  • 专题地理系统
  • 区域地理系统

1.7 应用型GIS概念

​ 应用型地理信息系统是根据用户的需求和应用目的而设计的一种解决十类或多类实际应用问题的地理信息系统。

​ **特点:**除了具有地理信息系统基本功能外,还具有解决地理空间实体及空间信息的分布规律、分布特征及相互依赖关系的应用模型和方法

应用型地理信息系统按研究对象性质和内容又可分为专题地理信息系统区域地理信息系统:
专题地理信息系统(Thematic GIS)—是具有有限目标和专业特点的地理信息系统,为特定专门目的服务。如矿产资源信息系统、水资源管理信息系统等。
区域地理信息系统(Regional GIS)—是以区域综合研究和全面信息服务为目标。可以有不同的规模、不同的自然分区或流域为单位的区域的划分。

GIS应用软件开发所要求的知识框架

ArcGIS Engine二次开发(一)_第2张图片

1.工具软件

​ GIS应用软件开发所要求的知识框架中,工具软件的“三大块”是基础、核心

​ 1)编码平台:针对目前比较流行的GIS二次开发方法,主要是指具有面向对象的特性的编码平台(如Visual Studio 6.0,Visual Studio .NET2005等),并要求掌握该平台下一种编码语言(如:/ C++,VBA,C#等):

​ 2)数据库技术:包括数据库设计的理论知识和对具体数据库平台的掌握与应用(如Access、sQL Server,Orcale等);

​ 3)GIS二次开发平台:指目前市场上比较流的一些GIS二次开发平台,它们都提供一种或几种二次开发方式(如MapInfo,MapGIS,ArcGIS,SuperMap等)

2.应用模型与方法

GIS应用软件开发所要求的知识框架中,GIS应用模型与方法是纽带、工具,发挥着导向的作用。

​ **GIS应用模型与方法:**是指根据具体的应用目标和问题,借助于CIS自身的技术优势,使观念世界中形成的概念模型,具体化为信息世界中可操作的机理和过程。

应用模型实例:土地利用适宜性模型、公园选址模型、洪水预测模型、人口扩散模型、森林增长模型、水土流失模型、影响模型、最优化方法、最短路径分析方法等。

应用模型的分类:

  • GIS应用模型,按结构划分为数学模型、统计模型、概念模型;

  • 按模型开发特点可分为系统提供模型和二次开发模型

1.8 GIS软件开发方式的对比介绍

应用型GIS有三种实现方式:独立开发、单纯二次开发、集成式二次开发

1.独立开发

​ 指不依赖于任何GIS工具软件,从空间数掘的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用一种程序设计语言(如:C++),在一定的操作平台上编程实现。

优点:无须依赖任何商业GIS工具软件,可以在某下情况下减少开发成本;功能上不受限制。

缺点:开发难度较高,延长开发周期,往往因受时间和财力的限制,使其在功能上很难与商业化的GIS工具软件相比。

适用范围:一般的应用型GIS很少采用这种开发方式,它主要存在于GIS发展初期(很多大型的工具型GIS都是由原来的应用型GIS发展来的,例如国内的MapGIS)。但在一些特殊部门(如:军事、研究单位等),由于安全机密性和特殊的功能需要,独立开发方式被广泛地采用。

2.单纯二次开发

​ 指完全借助于GIS工具软件提供的开发语言进行应用系统开发。

​ GIS工具软件大多提供了可供用户进行二次开发的宏语言。如ESRI的ArcView提供了Avenue语言,ESRI的ArcGIs 9x桌面软件提供了AML语言,Maplnfo公司研制的MapInfoProfessional提供了MapBasic语言等等。

优点:这种方式省时省心,可以快速达到使用者的目的,不需要使用者具有很专业的GIS二次开发能力,也大大缩短了开发周期、减少精力与财力的投入。

缺点:宏语言,作为编程语言功能相对很弱,用它们来开发应用程序无论从界面到功能上都仍然不尽如人意。

适用范围:一般的应用型IS也很少采用这种开发方式,它主要应用于小型简单的应用。当用户购买GIS工具软件后,如发现某些功能不能完全满足自己的需要,可以利用该GIS工具软件提供的宏语言来简单的实现。

3.集成式二次开发

​ 是指基于专业的GIS二次开发平台(如IMapObjects、SuperMap Objects、 ArcGIS Engine 与MapX等)中的GIS组件,结合通用软件开发工具,尤其是可视化开发工县如Visual Studio .NET、 Visual CH+、Visual Ba$ic等),针对某十具体的应用目的或应用领域的需要,进行二者的集成开发,以达到应用目的。

优点:这种开发方式结合了独立开发与单纯二次优缺点,不但可以简化开发难度,节约开发成本,也基本克服了功能实现单十的弊端。

缺点:一定程度上还是局限于所选用的GIS二次开发平台,购买GIS.二次开发平台也要花费较大的费用。所以需要我们在GIS二次开发平台的选取及购买的功能模块的分析上多下工夫。

**适用范围:**目前这种应用型GIS开发方式被广泛的应用到各行业。如:设施管理、城市和区域的规划、人口和商业管理、.交涌运输、石油和天然气等

ArcGIS Engine二次开发(一)_第3张图片

4.集成式二次开发基础

​ 集成式二次开发主要有两种方式:组件式和继承式

​ 组件式二次开发:是指基于组件式GIS二次开发平台(如:SuperMap Objects、MapX)中提供的GIS组件进行GIS应用软件的开发方式;(重点)

​ 继承式二次开发:是指基于他人已经开发好的具备GIS功能的类,通过面向对象的编程方法中继承的方式来编码实现GIS应用软件的开发方式。(了解)

1)什么是组件

​ 为了更好地进行GIS组件式二次开发,我们先应该理解组件以及与之相关的几个基础概念。

​ **组件(Component)**是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(RulesObject) 。

TIP:比较流行的组件模型有COM/DCOM、/.NE/T组件、CORBA,不同的组件遵循不同的接口规范。

A.组件与对象
组件看起来像对象,但不符合对象的学术定义。它们的主要区别是:
※组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用;
※组件可以由一个类构成,也可以由多个类组成,/或者是一个完整的应用程序;
※组件为模块重用,而对象为代码重用。

B.ActiveX、OLE与COM
※COM(Component Object Model)是组件之间相互接口的技术规范,其作用是使各种组件和应用软件能够用统一的标准方式进行交互。COM是一种与源代码无关的二进制标准。
它所建立的是一个软件模块与另一个软件模块之间的链接,当这个链接建立后,模块之间就可以通过“接口”的机制来通信。分布式环境下的COM称为DCOM

​ ※OLE(Object Linking Embedding,对象连接与嵌入)它是一个服务可控制、结构可扩展,基于对象集成组件的、统一的服务环境,是应用程序共享对象的一种方式。
​ OLE技术将应用程序的数据交换提高到“对象交换”这样程序间不但获得数据也同样获得彼此的应用程序对象,并且可以直接使用彼此的数据内容,OLE又称为复合文档技术

​ ※ActiveX是OLE的“升级版”,与OLE技术的区别在于OLE仅针对桌面应用软件和文件之间的集成,而ActiveX则提供网络应用与用户的交互。
​ OLE和ActiveX是建立在COM之上的,所以COM是基础;
​ OLE、ActiveX是两个商标名称,而COM则是一个纯技术规范,这也是大家更多的听说ActiveX和OLE的原因。

C.组件的类型

ArcGIS Engine二次开发(一)_第4张图片

2)GIS组件与组件式GIS
GIS组件:是指基于某种组件对象平台(OLE、ActiveX),符合标准通信接口规范(COM、.NET、CORBA),允许跨语言应用(VB、VC、.NET),的组件形式提供的GIS软件功能模
概念延伸

组件式GIS:基于组件技术,将GIS各大功能模块划分成不同的GIS组件,每个组件完成特定的功能。各个GIS组件之间,以及GIS组件与其它非GIS组件之间,都可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS基础平台以及应用系统。

一般而言,组件式GIS中的GIS组件被划分为若干功能单元,诸如空间数据管理、坐标转换、图形编辑、数据查询、数据分析、制图表示等。我们可以将GIS组件划分为3级结构。

  • A.基础组件:面向空间数据管理,,提供基本的交互过程,并以灵活的方式与数据库系统链接。

  • B.高级通用组件:由基础组件构造而成,面向通用功能可,简化用户开发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等,它们之间的协同控制消息都被封装起来。

  • C.行业性组件:抽象出行业应用的特点算法、固化到组件中,进一步加速开发过程。

3)使用GIS组件

A.组件分为全局组件和私有组件。如果是全局组件,使用前需要注册。组件的注册有几种方法:

  • 组件安装注册;
  • 命令提示行下注册;

在命令提示行状态下,进入包含组件.dl的文件夹,输入llregsvr32 [/u] component name.dll命令。

B.往编码平台中添加组件的引用。

  • 非可视化编码平台
    利用该平台的组件类库引用语句。如C语言中的“In-clude"语句引用组件所在的类库,然后就可以直接使用组件。
    #Include “MapObjects2.h”
  • 可视化编码平台
    利用该平台提供的工具,进行组件的引用。

1.9 GIS应用软件开发技术前沿

  • WebGIS开发模式

  • “3S”集成

    GPS是提供精确实时的空间定位的有利工具;RS是空间数据快速获取更新的最佳手段;GIS是对多源时空数据进行综合处理、集成管理和动态存取的基础平台。

  • 组件化地理信息系统的完善

    组件技术就是软件可复用技术,组件式地理信息系统(Com GIS)是顺应时代潮流的新一代理信息系统。基于工具型GIS提供的二次开发组件来构建应用型GIS是大势所趋的应用型GIS二次开发方式。

  • 3D&4D GIS
    为了能更加准确地描述现实世界,GIS必然要朝着3D&4D方向发展,这也是对我们进行应用型GIS开发的的一大挑战。多维空间中的空间分析仍然是目前3DGIS发展应用的瓶颈

  • 互操作GIS
    互操作地理信息系统(Interoperable GIS)是为了解决不向的GIS平台之间由于数据格式的差异而导致的通信困难的问题。开放地理信息系统联合会制定的OpenGIS规范已经推出,这就引导着GIS开发向着互操作GIS的方向发展。

  • 6.网格(grid) GIS
    网格GIS的定义:是利用现有的网格技术、空间信息基础设施、空间信息网络协议规范,形成一个虚拟的空间信息管理与处理环境,将空间地理分布的、异构的备种设备与系统进行集成,为用户提供一体化的空间信息应用服务的智能化信息平台。
    网格GIS的特点:异构性、动态性的环境;跨多管理域(测绘、国土资源、交通、气象、商务〉及多区域的动态的资源共享。
    与传统分布式GIS的主要区别是:松散耦合,异构、动态环境,跨区域跨多个管理域。

  • 搭建式GIS
    中地数码公司率先提出了一切面向服务(SOA)的搭建式MapGIS7 E-Builder开发平台。在该平台支持的系统开发模式下,只需要通过对功能模块的拖放,就可以搭建GIS业务系统。该模式实现零编程,可以减少软件开发量,提升软件开发质量,降低开发难度,使很多人都可以参与,学习更容易,维护更方便。

你可能感兴趣的:(arcgis,oracle,数据库)