GIS二次开发-亚洲ca88官方网站发布时间:2022-07-16 21:08:35 来源:亚洲ca88官方网站声明:,,,。概况 GIS二次开发,便是在现有的GIS软件供给的软件开发包(比方GIS控件)或许VBA、API等办法进行GIS功用的定制、开发。地舆信息体系根据其内容可分为两大根本类型:一是运用型地舆信息体系,以某一专业、范畴或作业为首要内容,包含专题地舆信息体系和区域归纳地舆信息体系;二是东西型地舆信息体系,也便是 GIS 东西软件包,如 ARC/INFO 等,具有空间数据输入、存储、处理、剖析和输出等 GIS 根本功用。跟着地舆信息体系运用范畴的扩展,运用型 GIS 的开发作业日显重要。怎么针对不同的运用方针,高效地开宣布既符合需求又具有便利漂亮丰厚的界面办法的地舆信息体系,是 GIS 开发者十分关怀的问题。 独立二次开发是指不依靠任何GIS东西软件,从空间数据的收集、批改到数据的处理剖析及成果输出,一切的算法都由开发者独立规划,然后选用某种程序规划言语,如Visual C++,Delphi,C++ Builder,VJ++等,在必定的操作体系渠道上批改完结。 这种办法的长处在于无需依靠任何商业GIS东西软件,削减了开发本钱,一起程序员能够对程序的各个方面进行整体操控。因而,体系各个组成部分之间的联络最为严密,灶照狼归纳程度和操作功率最高。但因为地舆信息体系的杂乱性,开发的作业量是十分巨大的,开发周期长。关于大多数开发者来说,才能、时刻、财力方面的约束使其开发处理的产品很难在功用上与商业化GIS东西软件比较。 单纯二次开发指彻底借助于地舆信息体系东西软件供给的二渗嚷桨次开发言语进行运用体系开发。现在,商业化的地舆信息体系东西现已恰当老练,它们大多供给了可供用户进行二次开发的宏言语,如ESRI的Arcview供给了Avenue言语,MapInfo公司研发的MapInfo Professional供给了MapBasic言语等。用户能够运用这些言语,以原GIS东西软件为开发渠道,针对不同运用方针,开宣布自己的运用程序。 详细开发时,可首要选用可视化开发渠道开发动态链接库(DLL),以完结地舆信息体系东西软件未供给或难以完结的功用,然后在二次开发宏言语中调用此动态链接库,然后充分运用二次开发言语操作地图方针的强壮功用,又避免了二次开发言语功用上的缺乏。这种开发办法省时省心,但进行二次开习键姜请发的宏言语作为编程言语只能算是二流,功用极弱,用来开发运用程序依然不颈连糊厦尽善尽美。前期的商用GIS软件是以解说言语办法履行的,根本上供给了自己的二次开发办法和言语,它们的二次开发环境有显着的缺乏: 言语千差万别,不易学习和把握。每种GIS软件,都依照自己的习气和自界说的语法规矩供给二次开发环境,关于已了解一渗颈种开发环境的人来说,要从头学习新的开发环境的困难较大。 解说履行,程序运转速度慢。前期的GIS开发环境着眼于交互操作,关于速度并无太多的要求。跟着GIS运用的进步,要求进步软件处理的自动化程度,这就要求GIS下的运用程序能处理较大的数据量。集成化要求的开展,要求GIS下的运用程序不只要能处理交互使命,一起也要能处理相关的规划与核算。 功用单一,归纳处理功用差。跟着GIS运用层次的进步,不只要求运用程序能进行图形交互,一起也应具有与操作体系交互的才能,乃至要求GIS的运用程序能够拜访处于散布环境的数据。 集成二次开发是指运用专业GIS东西软件或其供给的组件来完结GIS的根本功用,一起,选用通用软件开发东西,尤其是可视化开发东西,如Delphi,VisualC++ ,Visual Basic,Power Builder等作为开发渠道,进行二者的集成开发。集成二次开发现在首要有OLE DDE办法和组件式开发两种开发办法。 DDE起初是作为一种根据音讯的协议在Windows(3.X)中完结的,用于在不同的Windows运用程序之间交流信息。跟着Window3.0的发布,DDE在很大程度上得到了简化,组合到运用程序的作业也变得较为简略。方针链接与嵌入(ObjectLinking Embedding,OLE)比较DDE呈现得较晚,它是一个服务可操控、结构可扩展、根据方针集成的、一起的服务环境,是运用程序同享方针的工业规范,其实质是在运用程序中嵌入其它程序供给的方针和数据,然后取得特定功用的程序规划办法。 选用OLE自动化技能或运用DDE技能进行GIS集协达阀成二次开发的思路是:用软件开发东西开发前台可履行运用程序,以OLE自动化办法或DDE办法发动GIS东西软件在后台履行,运用回调拔汗劝技能动态取其回来信息,完结运用程序中的地舆信息处理功用。选用这种办法能够充分运用GIS东西软件强壮的地舆空间数据和特点数据办理才能以及可视化开发渠道,完结地舆信息开发。 组件式GIS(Components GIS,以下简称ComGIS)是指根据组件方针渠道,具有规范的接口,答应跨言语运用,因而使GIS软件的可装备性、可扩展性和开放性更强,运用更灵敏,二次开发更便利。其根本思维是把GIS的各首要功用模块划分为几个组件,每个组件完结不同的功用。各个GIS组件之间,以及GIS组件与其它非GIS组件之间,能够便利地经过可视化的软件开发东西集成起来,以构成终究的GIS运用。现在的ComGIS根本上是选用ActiveX组件或许其前身OLE组件。 现在,在软件开发范畴,一场新的革新正在悄然鼓起,这是由日趋老练的组件技能引发的。几年曾经,当微软公司首要运用 OLE 的时分,其初衷是为了增强软件的互操作性。然而在运用进程中,人们逐渐认识到这一技能背面的实质性内容和它在软件开发中所扮演的重要人物。组件技能曾经所未有的办法进步了软件产业的出产功率,这一点已逐渐成为软件开发人员的一起。传统的C/S 结构、群件、中间件等大型软件体系的构成办法,都将在组件的根底上从头结构。组件技能使近二十年来鼓起的面向方针技能进入到老练的实用化阶段。在组件技能的概念办法下,软件体系能够被视为彼此协同作业的方针调集,其间每个方针都会供给特定的服务,宣布特定的音讯,并且以规范办法公布出来,以便其他方针了解和调用。组件间的接口经过一种与渠道无关的言语IDL(InterfaceDefineLanguage)来界说,并且是二进制兼容的,运用者能够直接调用履行模块来取得方针供给的服务。前期的类库,供给的是原代码级的重用,只适用于比较小规模的开发办法;而组件则封装得愈加彻底,更易于运用,并且不限于C++之类的言语,能够在各种开发言语和开发环境中运用。因为组件技能的呈现,软件产业的办法也随之发生了很大的改动。许多组件出产商呈现出来,并推出各具特色的组件产品;软件集成商则运用恰当的组件快速出产出用户需求的某些运用体系;大而全的通用产品逐渐削减;许多相对较为专业,但用处广泛的软件,如GIS、语音识别体系等,都以组件的办法拼装和涣散到一般的软件产品中 COM是组件式方针模型(Component Object Model)的英文缩写,是组件之间彼此接口的规范,是OLE(Object Linking & Embedding)和ActiveX 一起的根底,其作用是使各种软件构件和运用软件能够用一种一起的规范办法进行交互。COM 不是一种面向方针的言语,而是一种与源代码无关的二进制规范。COM 所树立的是一个软件模块与另一个软件模块之间的链接,当这种链接树立之后,模块之间就能够经过称之为 “ 接口 ” 的机制来进行通讯。 COM 规范添加了保障体系和组件完好的安全机制,并扩展到散布式环境。它界说了软件组件的接口。 COM本质上依然是客户/服务器办法。客户(一般是运用程序)恳求创立COM 方针并经过COM 方针的接口操作COM 方针。服务器根据客户的恳求创立并办理COM 方针。客户和服务器这两种人物并不是肯定的。 根据散布式环境下的 COM 被称作DCOM(Distribute 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 Control):用于向WEB 页面、Microsoft Word 等支撑ActiveX的容器(Container)中刺进COM 方针; · ActiveX 文档(ActiveX Document):用于在Web Browser 或许其它支撑ActiveX的容器中阅读复合文档(非HTML 文档),例如Microsoft Word 文档、Microsoft Excel文档或许用户自界说的文档等; · ActiveX 脚本描绘(ActiveX Scripting):用于从客户端或许服务器端操作ActiveX控件和Java 程序、传递数据以及和谐它们之间的操作等; · ActiveX 服务器结构(ActiveX Server Framework):供给了一系列针对Web 服务器运用程序规划各个方面的函数及其封装类,比如服务器过滤器、HTML 数据流操控等; · 在 Internet Explorer 中内置Java 虚拟机(Java Virtual Machine),然后使Java Applet 能够在Internet Explorer 上运转,并能够与ActiveX 操控经过脚本描绘言语进行通讯。 桌面用的、根据 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 构件。 GIS组件的代表作应首推MapObjects 以及MapX。其间MapObjects 由全球最大的GIS 厂商ESRI(美国环境体系研究所)推出;MapX 由闻名的桌面GIS 厂商美国MapInfo 公司推出。别的还有加拿大阿波罗科技集团的TITAN 等。下表是MapObjects 和MapX 的首要功用比照。 软件的构件化已成为软件技能开展的潮流。根据 DCOM 的ActiveX 构件完结,已成为软件工业的一种规范。伴跟着未来其它非Windows 渠道对ActiveX 的支撑,ActiveX 构件化的GIS 软件体系将对GIS 的体系结构和GIS 将来的运用远景发生深远影响。 尽管选用 GIS 构件在开发上有许多优势,可是不可避免的也存在一些功用上的短缺和技能上的不老练,首要包含以下几个方面: · 与专业的 GIS 客户端软件比较,选用构件技能不可避免的带来功率上的相对低下,这在拜访超大空间数据(如大数据量的遥感图象)的时分体现得尤为显着; MapInfo公司及其产品:美国MapInfo 公司致力于为用户供给先进的数据可视化、信息地图化技能,并将这些技能与干流事务体系集成,供给完好的解决方案。MapInfo 吸取了传统GIS 体系的精华,并借助于核算机技能的开展,及时将GIS 概念从中大型核算机的专用作业站上介绍至一般桌面PC 上,创始了簇新桌面地图信息体系。MapInfo 公司的首要系列产品有: 每一个表都是一组 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及其图形方针的办理所供给的特性和强壮功用。选用面向方针及事情驱动编程 具有 OLE 和 OLE Automation 功用,能够便利地运用 Delphi 、 VB 、 VC 等多种开发东西,确保了新的运用程序与原有的运用界面坚持一起,为日后的深层开发供给一个扩展空间。 内容由网友一起批改,如您发现自己的词条内容不精确或不完善,欢迎运用自己词条批改服务(免费)参加批改。当即前往 上一篇:SDC『三维GIS开发专场』9月18日 新一代三维GIS系统深度分析 下一篇:GIS二次开发概述(收拾) |