GIS二次开发概述(收拾)-亚洲ca88官方网站发布时间:2022-07-16 21:08:44 来源:亚洲ca88官方网站地舆信息体系根据其内容可分为两大根本类型:一是运用型地舆信息体系,以某一专业、范畴或作业为首要内容,包含专题地舆信息体系和区域归纳地舆信息体系;二是东西型地舆 信息体系,也便是 GIS 东西软件包,如 ARC/INFO 等,具有空间数据输入、存储、处理、剖析和输出等 GIS 根本功用。跟着地舆信息体系运用范畴的扩展,运用型 GIS 的开发作业日显 重要。怎么针对不同的运用方针,高效地开宣布既符合需求又具有便利漂亮丰厚的界面办法的地舆信息体系,是 GIS 开发者十分关怀的问题。 指不依靠于任何 GIS 东西软件,从空间数据的收集、修正到数据的处理剖析及成果输出,一切的算法都由开发者独立规划,然后选用某种程序规划言语,如Visual C、Delphi 等, 在必定的操作体系渠道上编程完结。这种办法的长处在于无须依靠任何商业GIS 东西软件,削减了开发本钱,但一方面关于大多数开发者来说,才能、时刻、财力方面的约束使其开宣布 来的产品很难在功用上与商业化GIS 东西软件比较,并且在购买GIS 东西软件上省下的钱或许还抵不上开发者在开发进程中费尽心机所花的价值。 指根据 GIS 渠道软件上进行运用体系开发。大多数GIS 渠道软件都供给了可供用户进行二次开发的脚本言语,如ESRI 的ArcView 供给了Avenue 言语,MapInfo 公司的MapInfo Professional供给了MapBasic 言语等等。用户能够运用这些脚本言语,以原GIS 软件为开发渠道,开宣布自己的针对不同运用方针的运用程序。这种办法省时省心,但进行二次开发的脚 本言语,作为编程言语,功用极弱,用它们来开发运用程序依然不尽善尽美,并且所开发的体系不能脱离GIS 渠道软件,是解说履行的,功率不高。 大多数 GIS 软件产商都供给商业化的GIS 组件,如ESRI 公司的MapObjects、MapInfo 公司的MapX 等,这些组件都具有GIS 的根本功用,开发人员能够根据通用软件开发东西特别 是可视化开发东西,如Delphi、Visual C、Visual Basic、Power Builder 等为开发渠道,进行二次开发。运用GIS 东西软件出产厂家供给的树立在OCX 技能根底上的GIS 功用控件,如 ESRI 的MapObjects、MapInfo 公司的MapX 等,在Delphi 等编程东西编制的运用程序中,直接将GIS 功用嵌入其间,完结地舆信息体系的各种功用 因为独立开发难度太大,单纯二次开发受 GIS 东西供给的编程言语的约束差强人意,因而结合GIS 东西软件与当今可视化开发言语的集成二次开发办法就成为GIS 运用开发的干流。 它的长处是既能够充分运用GIS 东西软件对空间数据库的办理、剖析功用,又能够运用其它可视化开发言语具有的高效、便利等编程长处,集二者之所长,不只能大大提高运用体系的开 发功率,并且运用可视化软件开发东西开宣布来的运用程序具有更好的外观作用,更强壮的数据库功用,并且可靠性好、易于移植、便于维护。特别是运用OCX 技能运用GIS 功用组件进 行集成开发,更能体现出这些优势。 因为上述长处,集成二次开发正成为运用 GIS 开发的干流方向。这种办法仅有的缺陷是前期投入比较大,需求一起购买GIS 东西软件和可视化编程软件,但“工欲善其事,必先利其 器”,这种出资值得。 现在许多软件公司都开发了许多 ActiveX 控件,合理挑选和运用现成的控件,削减了开发者的编程作业量,使开发者避开某些运用的详细编程,直接调用控件,完结这些详细运用, 不只能够缩短程序开发周期,使编程进程更简练,用户界面更友爱,能够使程序愈加灵敏、简洁。 创造面向方针程序规划办法的首要起点是补偿面向进程程序规划办法中的一些缺陷。 OOP 把数据看作程序开发中的根本元素,并且不答应它们在体系中自在活动。它将数据和操作 这些数据的函数严密的衔接在一起,并维护数据不会被外界的函数意外的改动。OOP 答应咱们将问题分解为一系列实体——这些实体被称为方针(object),然后环绕这些实体树立数据 和函数。面向方针程序规划中的数据和函数的安排结构如图4 所示。 面向方针程序规划( OOP)技能罗致了结构化程序规划中好的思维,并将这些思维与一些新的、强壮的理念相结合,然后给你的程序规划作业供给了一种全新的办法。一般,在面向 方针的程序规划风格中,你会将一个问题分解为一些彼此相关的子集,每个子集内部都包含了相关的数据和函数。一起,你会以某种办法将这些子集分为不同等级,而一个方针便是已定 义的某个类型的变量。当你界说了一个方针,你就隐含的创立了一个新的数据类型。 现在,在软件开发范畴,一场新的革新正在悄然鼓起,这是由日趋老练的组件技能引发的。几年曾经,当微软公司首要运用 OLE 的时分,其初衷是为了增强软件的互操作性。然而在 运用进程中,人们逐渐认识到这一技能背面的实质性内容和它在软件开发中所扮演的重要人物。组件技能曾经所未有的办法提高了软件产业的出产功率,这一点已逐渐成为软件开发人员 的一致。传统的C/S 结构、群件、中间件等大型软件体系的构成办法,都将在组件的根底上从头结构。组件技能使近二十年来鼓起的面向方针技能进入到老练的实用化阶段。在组件技能 的概念办法下,软件体系能够被视为彼此协同作业的方针调集,其间每个方针都会供给特定的服务,宣布特定的音讯,并且以规范办法公布出来,以便其他方针了解和调用。组件间的接 口经过一种与渠道无关的言语IDL(InterfaceDefineLanguage)来界说,并且是二进制兼容的,运用者能够直接调用履行模块来取得方针供给的服务。前期的类库,供给的是原代码级的 重用,只适用于比较小规模的开发办法;而组件则封装得愈加彻底,更易于运用,并且不限于C++之类的言语,能够在各种开发言语和开发环境中运用。因为组件技能的呈现,软件产 业的办法也随之发生了很大的改动。许多组件出产商出现出来,并推出各具特色的组件产品;软件集成商则运用恰当的组件快速出产出用户需求的某些运用体系;大而全的通用产品逐渐 削减;许多相对较为专业,但用处广泛的软件,如GIS、语音识别体系等,都以组件的办法拼装和涣散到一般的软件产品中。 COM 是组件式方针模型(Component Object Model)的英文缩写,是组件之间彼此接口的规范,是OLE(Object Linking & Embedding)和ActiveX 一起的根底,其作用是使各种软件构 件和运用软件能够用一种一致的规范办法进行交互。COM 不是一种面向方针的言语,而是一种与源代码无关的二进制规范。COM 所树立的是一个软件模块与另一个软件模块之间的链 接,当这种链接树立之后,模块之间就能够经过称之为 “ 接口 ” 的机制来进行通讯。 COM 规范添加了保障体系和组件完好的安全机制,并扩展到分布式环境。它界说了软件组件的接口。 COM 本质上依然是客户/服务器办法。客户(一般是运用程序)恳求创立COM 方针并经过COM 方针的接口操作COM 方针。服务器根据客户的恳求创立并办理COM 方针。客户和服 务器这两种人物并不是肯定的。 DCOM 是ActiveX 的根底,它完结了COM 方针与长途核算机上的另一个方针之间直接进行交互。DCOM 规范界说了涣散方针创立和方针间通讯的机制,规范自身并不依靠于任何特 定的编程言语和操作体系,但现在该规范只在Microsoft Windows 渠道完结,这就意味着其它的操作体系渠道(如UNIX)现在还不支撑ActiveX。 DCOM 的完结选用了DCOM 库的办法,当DCOM 客户方针需求DCOM 服务器方针的服务时, DCOM 库担任生成DCOM 服务器方针并在客户方针和服务器方针之间树立初始衔接, 一旦回来服务器方针指针,DCOM 库就不再参加客户方针与服务器方针之间的作业,两个方针之间能够自在地进行通讯。 DCOM 接口实际上时逻辑上和语义上相相关的函数集。服务器方针经过DCOM 接口为客户方针供给服务,客户方针不需了解服务器方针的内部数据标明。接口能够当作两个软件构件 之间的一种协议,协议标明服务器方针为客户方针供给一种且仅此一种服务。接口选用大局仅有标识符(GUID)来确保服务的仅有性。一般的DCOM 构件供给多种服务,那么服务器对 象为每一种服务完结一个接口。当客户方针指针指向相应的服务器方针时,它就激活服务器方针接口的相应函数。详细进程是:客户方针经过DCOM 方针有必要支撑的IunKnown 接口取得 其它接口的指针。客户方针或许并不知道服务器方针的每个接口,但这并不阻碍客户方针对服务器方针的运用,它只用它知道的接口。当客户方针用完服务器方针的服务时,它会告诉服 务器方针,服务器方针就开释它所占有的内存。 DCOM 的长处是清楚明了的。因为接口的界说和功用坚持不变,DCOM 构件开发者能够改动接口功用、为方针添加新功用、用更好的方针来替代原有方针,而树立在构件根底上的应 用程序简直不用修正,大大提高了代码的重用性。 ( 1)ActiveX 是Microsoft 提出的一组根据COM(Component Object Model,部件方针模型)规范使得软件部件在网络环境中进行交互的技能集。它与详细的编程言语无关。作为 针对Internet运用开发的技能,ActiveX 被广泛运用于WEB 服务器以及客户端的各个方面。一起,ActiveX技能也被 用于便利地创立一般的桌面运用程序 • ActiveX 脚本描绘(ActiveX Scripting):用于从客户端或许服务器端操作ActiveX控件和Java 程序、传递数据以及和谐它们之间的操作等; • ActiveX 服务器结构(ActiveX Server Framework):供给了一系列针对Web 服务器运用程序规划各个方面的函数及其封装类,比如服务器过滤器、HTML 数据流操控等; 桌面用的、根据 COM 的组件叫做ActiveX 控件。所谓ActiveX 控件不过是遵照必定的规范、与客户端交互的COM 方针罢了。根据组件的运用开发,其办法和拼装电子设备相同,能够用 已制作好的组件部件来构筑运用。这确实是一项很心旷神往的技能。尽管说起来深邃,但跟着ActiveX 的广泛运用,越来越多的编程东西都支撑创立ActiveX 控件了。这其间就包含了VB。 ActiveX 控件是充分运用ActiveX(根据COM)技能的自界说控件,是根据与运用程序无关的思维而规划的,其方针是供给一种面向方针、与编程言语无关、能够在运用程序之间相互访 问方针的机制。 ActiveX 控件是树立在COM 规范上的独立的软件元件,供给给用户运用接口,发送相应的事情,开发者则能够截取这些事情,履行相应的功用。ActiveX 控件开发端和运用端是彻底 独立的,能够用Delphi、VB 等各种言语来开发,又能够用于不同言语、不同开发渠道、不同的体系环境中。一个或多个ActiveX 控件会保存在一个动态链接库中,但它是一种特别的动态 链接库,其扩展名是OCX。 ActiveX 不等同于ActiveX 构件,从上面的介绍可知,ActiveX 是一个很宽的技能宗族的标识,而ActiveX 控件仅仅那个宗族的一个特定产品。 组件式软件技能现已成为当今软件技能的潮流之一,为了习惯这种技能潮流, GIS 软件象其他软件相同,现已或正在发生着革新性的改动,即由曩昔厂家供给了悉数体系或许具有二 次开发功用的软件,过渡到供给组件由用户自己再开发的方向上来。无疑,组件式GIS 技能将给整个GIS技能体系和运用办法带来巨大影响。 根本思维是把 GIS 的各大功用模块划分为几个控件,每个控件完结不同的功用。各个GIS 控件之间,以及GIS 控件与其它非GIS 控件之间,能够便利地经过可视化的软件开发东西集 成起来,构成终究的GIS 运用。控件好像一堆林林总总的积木,他们别离完结不同的功用(包含GIS 和非GIS 功用),根据需求把完结各种功用的 “ 积木 ” 树立起来,就构成运用体系。 • 开发简捷把 GIS 的功用恰当笼统,以组件办法供开发者运用,将会带来许多传统GIS 东西无法比拟的长处。 因为传统 GIS 结构的封闭性,往往使得软件自身变得越来越巨大,不同体系的交互性差,体系的开发难度大。在组件模型下,各组件都会集地完结与自己最严密相关的体系功用,用 户能够根据实际需求挑选所需控件,最大极限地降低了用户的经济担负。。组件化的GIS 渠道会集供给空间数据办理才能,并且能以灵敏的办法与数据库体系衔接。在确保功用的条件 下,体系体现得细巧灵敏,而其价格仅是传统GIS 开发东西的十分之一,乃至更少。这样,用户便能以较好的性能价格比取得或开发GIS 运用体系。 传统 GIS 往往具有独立的二次开发言语,对用户和运用开发者而言存在学习上的担负。并且运用体系所供给的二次开发言语,开发往往受到约束,难以处理杂乱问题。而组件式GIS 树立在严厉的规范之上,不需求额定的GIS 二次开发言语,只需完结GIS 的根本功用函数,依照Microsoft 的ActiveX 控件规范开发接口。这有利于减轻GIS 软件开发者的担负,并且增强 了GIS 软件的可扩展性。GIS 运用开发者,不用把握额定的GIS 开发言语,只需了解根据Windows 渠道的通用集成开发环境,以及GIS 各个控件的特色、办法和事情,就能够完结运用系 统的开发和集成。现在,可供挑选的开发环境许多,如Visual C、Visual Basic、VisualFoxPro、Borland C、Delphi、C Builder 以及Power Builder 等都可直接成为GIS 或GMIS 的优异开发东西,它们各自的长处都能够得到充分发挥。这与传统GIS 专门性开发环境比较,是一种质的腾跃。 新的 GIS 组件都是根据32 位体系渠道的,选用InProc 直接调用办法,所以无论是办理大数据的才能仍是处理速度方面均不比传统GIS 软件差劲。小小的GIS 组件彻底能供给拼接、裁 剪、叠合、缓冲区等空间处理才能和丰厚的空间查询与剖析才能。 因为 GIS 组件能够直接嵌入MIS 开发东西中,关于广阔开发人员来讲,就能够自在选用他们了解的开发东西。并且,GIS 组件供给的API 办法十分挨近MIS 东西的办法,开发人员可 以像办理数据库表相同熟练地办理地图等空间数据,无须对开发人员进行特别的训练。在GIS 或GMIS 的开发进程中,开发人员的本质与熟练程度是十分重要的要素。这将使许多的MIS 开 发人员能够较快地过渡到GIS 或GMIS 的开发作业中,然后大大加快GIS 的开展。 组件式技能现已成为业界规范,用户能够象运用其他 ActiveX 控件相同运用GIS 控件,使非专业的一般用户也能够开发和集成GIS 运用体系,推动了GIS 大众化进程。组件式GIS 的出 现使GIS 不只仅专家们的专业剖析东西,一起也成为一般用户对地舆相关数据进行办理的的可视化东西。 高档通用组件 :由根底组件结构而成,面向通用功用,简化用户开发进程,如显现东西组件、挑选东西组件、修正东西组件、特色浏览器组件等等。它们之间的协同操控音讯都被封装 起来。这级组件经过封装后,使二次开发更为简略。如一个修正查询体系,若用根底渠道开发,需求编写许多的代码,而运用高档通用组件,只需几句程序就够了。面向通用功用; 职业性组件 : 笼统出职业运用的特定算法,固化到组件中,进一步加快开发进程。以 GPS 监控为例。关于GPS 运用,除了需求地图显现、信息查询等一般的GIS 功用外,还需求特定 的运用功用,如动态方针显现、方针确定、轨道显现等。这些GPS 职业性运用功用组件被封装起来后,开发者的作业就可简化为设置显现方针的图例、轨道显现的色彩、确定的方针,以 及调用、承受数据的办法等。 能够幻想要把这些一切的功用放在一个控件中简直是不或许的,即便完结也会带来体系功率上的低下。一般能够以为 GIS 构件的规划首要遵从运用范畴地需求。例如ESRI 地 MapObjects 便是以空间数据拜访、查询、制图为首要方针的GIS 构件。 软件的构件化已成为软件技能开展的潮流。根据 DCOM 的ActiveX 构件完结,已成为软件工业的一种规范。伴跟着未来其它非Windows 渠道对ActiveX 的支撑,ActiveX 构件化的GIS 软件体系将对GIS 的体系结构和GIS 将来的运用远景发生深远影响。 尽管选用 GIS 构件在开发上有许多优势,可是不可避免的也存在一些功用上的短缺和技能上的不老练,首要包含以下几个方面: • 与专业的 GIS 客户端软件比较,选用构件技能不可避免的带来功率上的相对低下,这在拜访超大空间数据(如大数据量的遥感图象)的时分体现得尤为显着; • 支撑的空间数据量有限; • 支撑的功用有限,因为是构件,只覆盖了 GIS 体系的部分功用,所以关于特别范畴, • 它就显得力不从心; (6) MapInfo 相关技能 MapInfo 公司及其产品:美国MapInfo 公司致力于为用户供给先进的数据可视化、信息地图化技能,并将这些技能与干流事务体系集成,供给完好的解决方案。MapInfo 吸取了传统GIS 体系的精华,并借助于核算机技能的开展,及时将GIS 概念从中大型核算机的专用作业站上介绍至一般桌面PC 上,创始了簇新桌面地图信息体系。MapInfo 公司的首要系列产品有: • 桌面地舆信息体系 MapInfo Professional • 网络解决方案 MapInfo ProSerev • 数据库服务器产品 MapInfo SpatialWare • GIS 组件:MapInfo ActiveX • 开发东西 MapInfo MapBasic 首要技能特色 : A)、 以表(Table)的办法安排信息 每一个表都是一组 MapInfo 文件,这些文件组成了地图文件和数据库文件。为运用MapInfo,就需求有组成表的用户数据和地图文件。这些文件能够来自MapInfo 或许由用户创立。 用户要想在MapInfo 中作业,就有必要翻开一个或多个表。MapInfo 经过表的办法将数据与地图有机地结合在一起。当用户在MapInfo 中翻开数据文件时,MapInfo 将创立一个表。这个表至 少由两个独立的文件组成,一个是包含数据结构的文件,另一个是包含原始数据的文件。一个典型的MapInfo 表将首要由*.tab、*.dat、*.wks、*.dbf、*.xls、*.map、*.id、 文件格局 组成。 MapInfo 内置的数据库办理体系是一种联络型数据库办理体系,也是用二维表安排数据。与其它联络型数据库不同的是表结构中除可包含常用类型的特色列外,还引进一个图形方针 列(OBJ 列),用于存储图形方针(如线、区域等)。MapInfo 供给许多图形方针的操作接口,运用这些接口能够生成和处理所需求的各种图形。 MapInfo 是按图层安排核算机地图的。也便是说,将一幅核算机地图加工成多个层层叠加的通明层,这个通明层就称为图层。每个图层包含了整个地图的一个不同方面。例如,榜首 个图层包含省鸿沟,第二个图层标明省府的符号,第三个图层由标示文本组成,把它们层层叠加就构成一幅完好的地图。在创立每一个图层时,都要为其树立一张表,MapInfo 便是经过 这种办法使表与地图之间树立了联络。 也便是说, MapInfo 是以表的办法来进行办理的,每个表一般包含两部份:地图部分和数据库(特色)部份。 供给多种数据可视化的专题地图,能将数据库中的信息进行直观的可视化剖析。运用专题渲染在地图上显现数据时,能够清楚地看出在数据记载中难以发现的办法或趋势,为用户的 决议计划供给根据。专题地图包含规模值、点密度、柱状图、等级符号、饼图和独立值六种办法。 MapInfo 内置ODBC,支撑各种联络型数据库,支撑SQL 查询,然后确保了对原有数据库的沿袭和对长途数据库地拜访。具有空间查询的功用扩展(如缓冲区、叠加等),选用数 据库房的最新技能OLAP(Online Analytical Processing)的联机事物处理,关于运用程序完结图形查询和表查询供给了强壮的手法。 MapInfo 既支撑数字化仪的图形输入办法,直接生成矢量图,也支撑现在市场上盛行的图形图象格局。可承受AutoCAD 的DWG、DXF 规范文件格局,还可经过MIF 及MID 文件与 其它软件树立数据的接口。其间MIF 文件内保存有图形信息,MID 文件内保存有图形的特色信息。MIF 及MID 文件经过MapInfo 的菜单指令Import 和Export 来输入和发生。 作为一个体系软件, MapInfo 供给了能够将其一切的功用用程序来驱动的办法,内置规范的二次开发东西 —— MapBasic。MapBasic 不只与大众化的Basic 语法相一致,具有根本一 致的常用函数集(核算、字符串处理、文件I/O、DLL 调用等),并且运用MapBasic 言语所供给的函数、进程和句子指令能够完结许多有关图形方针办理的杂乱操作和运算。它的真实 优势在于对MapInfo 中的Table 及其图形方针的办理所供给的特性和强壮功用。选用面向方针及事情驱动编程 H)、集成二次开发才能 具有 OLE 和 OLE Automation 功用,能够便利地运用 Delphi 、 VB 、 VC 等多种开发东西,确保了新的运用程序与原有的运用界面坚持一致,为日后的深层开发供给一个扩展空间。 上一篇:GIS二次开发 下一篇:GIS二次开发:榜首部分 GIS软件开发根底 |