GIS⼆次开发概述(整理)
GIS ⼆次开发概述
地理信息系统根据其内容可分为两⼤基本类型:⼀是应⽤型地理信息系统,以某⼀专业、领域或⼯作为主要内容,包括专题地理信息系统和区域综合地理信息系统;⼆是⼯具型地理信息系统,也就是 GIS ⼯具软件包,如 ARC/INFO 等,具有空间数据输⼊、存储、处理、分析和输出等 GIS 基本功能。随着地理信息系统应⽤领域的扩展,应⽤型 GIS 的开发⼯作⽇显重要。如何针对不同的应⽤⽬标,⾼效地开发出既合乎需要⼜具有⽅便美观丰富的界⾯形式的地理信息系统,是 GIS 开发者⾮常关⼼的问题。
⼀ . GIS 开发模式
独⽴开发:
指不依赖于任何 GIS ⼯具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独⽴设计,然后选⽤某种程序设计语⾔,如Visual C++、Delphi 等,在⼀定的操作系统平台上编程实现。这种⽅式的好处在于⽆须依赖任何商业GIS ⼯具软件,减少了开发成本,但⼀⽅⾯对于⼤多数开发者来说,能⼒、时间、财⼒⽅⾯的限制使其开发出来的产品很难在功能上与商业化GIS ⼯具软件相⽐,⽽且在购买GIS ⼯具软件上省下的钱可能还抵不上开发者在开发过程中绞尽脑汁所花的代价。
宿主型⼆次开发:
指基于 GIS 平台软件上进⾏应⽤系统开发。⼤多数GIS 平台软件都提供了可供⽤户进⾏⼆次开发的脚本语⾔,如ESRI 的ArcView 提供了Avenue 语⾔,MapInfo 公司的MapInfo Professional提供了MapBasic 语⾔等等。⽤户可以利⽤这些脚本语⾔,以原GIS 软件为开发平台,开发出⾃⼰的针对不同应⽤对象的应⽤程序。这种⽅式省时省⼼,但进⾏⼆次开发的脚本语⾔,作为编程语⾔,功能极弱,⽤它们来开发应⽤程序仍然不尽如⼈意,并且所开发的系统不能脱离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: Object Oriented Programming)
1、⾯向对象程序设计模式
发明⾯向对象程序设计⽅法的主要出发点是弥补⾯向过程程序设计⽅法中的⼀些缺点。 OOP 把数据
看作程序开发中的基本元素,并且不允许它们在系统中⾃由流动。它将数据和操作这些数据的函数紧密的连结在⼀起,并保护数据不会被外界的函数意外的改变。OOP 允许我们将问题分解为⼀系列实体——这些实体被称为对象(object),然后围绕这些实体建⽴数据和函数。⾯向对象程序设计中的数据和函数的组织结构如图4 所⽰。
2、什么是⾯向对象程序设计?
⾯向对象程序设计( OOP)技术汲取了结构化程序设计中好的思想,并将这些思想与⼀些新的、强⼤的理念相结合,从⽽给你的程序设计⼯作提供了⼀种全新的⽅法。通常,在⾯向对象的程序设计风格中,你会将⼀个问题分解为⼀些相互关联的⼦集,每个⼦集内部都包含了相关的数据和函数。同时,你会以某种⽅式将这些⼦集分为不同等级,⽽⼀个对象就是已定义的某个类型的变量。当你定义了⼀个对象,你就隐含的创建了⼀个新的数据类型。
3、⾯向对象程序设计中的基本概念(可以参考相关书籍)
三 . 组件式GIS(ComGIS)
1、组件技术:
组件技术的兴起:
⽬前,在软件开发领域,⼀场新的⾰命正在悄悄兴起,这是由⽇趋成熟的组件技术引发的。⼏年以前,当微软公司⾸先使⽤ OLE 的时候,其初衷是为了增强软件的互操作性。然⽽在使⽤过程中,⼈们逐渐认识到这⼀技术背后的实质性内容和它在软件开发中所扮演的重要⾓⾊。组件技术以前所未有的⽅式提⾼了软件产业的⽣产效率,这⼀点已逐步成为软件开发⼈员的共识。传统的C/S 结构、件、中间件等⼤型软件系统的构成形式,都将在组件的基础上重新构造。组件技术使近⼆⼗年来兴起的⾯向对象技术进⼊到成熟的实⽤化阶段。在组件技术的概念模式下,软件系统可以被视为相互协同⼯作的对象集合,其中每个对象都会提供特定的服务,发出特定的消息,并且以标准形式公布出来,以便其他对象了解和调⽤。组件间的接⼝通过⼀种与平台⽆关的语⾔IDL(InterfaceDefineLanguage)来定义,⽽且是⼆进制兼容的,使⽤者可以直接调⽤执⾏模块来获得对象提供的服务。早期的类库,提供的是原代码级的重⽤,只适⽤于⽐较⼩规模的开发形式;⽽组件则封装得更加彻底,更易于使⽤,并且不限于C++之类的语⾔,可以在各种开发语⾔和开发环境中使⽤。由于组件技术的出现,软件产业的形式也随之发⽣了很⼤的变化。⼤量组件⽣产商涌现出来,并推出各具特⾊的组件产品;软件集成商则利⽤适当的组件快速⽣产出⽤户需要的某些应⽤系统;⼤⽽全的通⽤产品逐步减少;很多相对较为专业,但⽤途⼴泛的软件,如GIS、语⾳识别系统等,都以组件的形式组装和扩散到⼀般的软件产品中。
COM 与DCOM:
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 构件开发者可以改变接⼝功能、为对象增加新功能、⽤更好的对象来代替原有对象,⽽建⽴在构件基础上的应⽤程序⼏乎不⽤修改,⼤⼤提⾼了代码的重⽤性。
ActiveX 与ActiveX 控件:
ActiveX:
( 1)ActiveX 是Microsoft 提出的⼀组基于COM(Component Object Model,部件对象模型)规范使得软件部件在⽹络环境中进⾏交互的技术集。它与具体的编程语⾔⽆关。作为针对Internet应⽤开发的技术,ActiveX 被⼴泛应⽤于WEB 服务器以及客户端的各个⽅⾯。同时,ActiveX技术也被⽤于⽅便地创建普通的桌⾯应⽤程序
( 2)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 能够在Intern
et Explorer 上运⾏,并可以与ActiveX 控制通过脚本描述语⾔进⾏通信。
桌⾯⽤的、基于 COM 的组件叫做ActiveX 控件。所谓ActiveX 控件不过是遵从⼀定的标准、与客户端交互的COM 对象⽽已。基于组件的应⽤开发,其⽅法和组装电⼦装置⼀样,可以⽤已制作好的组件部件来构筑应⽤。这确实是⼀项很令⼈神往的技术。虽然说起来⾼深,但随着ActiveX 的⼴泛应⽤,越来越多的编程⼯具都⽀持创建ActiveX 控件了。这其中就包括了VB。
浏览器的activex控件ActiveX 控件:
ActiveX 控件是充分利⽤ActiveX(基于COM)技术的⾃定义控件,是基于与应⽤程序⽆关的思想⽽设计的,其⽬标是提供⼀种⾯向对象、与编程语⾔⽆关、可以在应⽤程序之间互相访问对象的机制。
ActiveX 控件是建⽴在COM 标准上的独⽴的软件元件,提供给⽤户应⽤接⼝,发送相应的事件,开发者则可以截取这些事件,执⾏相应的功能。ActiveX 控件开发端和使⽤端是完全独⽴的,可以⽤Delphi、VB 等各种语⾔来开发,⼜可以⽤于不同语⾔、不同开发平台、不同的系统环境中。⼀个或多个ActiveX 控件会保存在⼀个动态链接库中,但它是⼀种特殊的动态链接库,其扩展名是OCX。
ActiveX 控件的组成
⼀个 ActiveX 控件由它的⼀些成员组成:属性,⽅法以及事件
PME 模型
Property 属性
Method⽅法
Event 事件
• P:属性是⽤来描述和反映对象特征的参数,⽤来保存对象的数据
• M:⽅法是控件内部可调⽤的⽤以完成特定操作的过程或函数
• E:事件是VB 预先定义的对象能识别的动作。
ActiveX 与ActiveX 控件的区别
ActiveX 不等同于ActiveX 构件,从上⾯的介绍可知,ActiveX 是⼀个很宽的技术家族的标识,⽽ActiveX 控件只是那个家族的⼀个特定产品。
2、组件式GIS
组件式软件技术已经成为当今软件技术的潮流之⼀,为了适应这种技术潮流, GIS 软件象其他软件⼀样,已经或正在发⽣着⾰命性的变化,即由过去⼚家提供了全部系统或者具有⼆次开发功能的软件,过渡到提供组件由⽤户⾃⼰再开发的⽅向上来。⽆疑,组件式GIS 技术将给整个GIS技术体系和应⽤模式带来巨⼤影响。
( 1)组件式GIS
基本思想是把 GIS 的各⼤功能模块划分为⼏个控件,每个控件完成不同的功能。各个GIS 控件之间,以及GIS 控件与其它⾮GIS 控件之间,可以⽅便地通过可视化的软件开发⼯具集成起来,形成最终的GIS 应⽤。控件如同⼀堆各式各样的积⽊,他们分别实现不同的功能(包括GIS 和⾮GIS 功能),根据需要把实现各种功能的 “ 积⽊ ” 搭建起来,就构成应⽤系统。
(2) 组件式GIS 系统的特点
• ⼩巧灵活、价格便宜
• ⽆须专门 GIS 开发语⾔,直接嵌⼊MIS 开发⼯具
• 强⼤的 GIS 功能
• 开发简捷把 GIS 的功能适当抽象,以组件形式供开发者使⽤,将会带来许多传统GIS ⼯具⽆法⽐拟的优点。
• 更加⼤众化
A)、⼩巧灵活、价格便宜
由于传统 GIS 结构的封闭性,往往使得软件本⾝变得越来越庞⼤,不同系统的交互性差,系统的开发难度⼤。在组件模型下,各组件都集中地实现与⾃⼰最紧密相关的系统功能,⽤户可以根据实际需要选择所需控件,最⼤限度地降低了⽤户的经济负担。。组件化的GIS 平台集中提供空间数据管理能⼒,并且能以灵活的⽅式与数据库系统连接。在保证功能的前提下,系统表现得⼩巧灵活,⽽其价格仅是传统GIS 开发⼯具的⼗分之⼀,甚⾄更少。这样,⽤户便能以较好的性能价格⽐获得或开发GIS 应⽤系统。
B)、⽆须专门GIS 开发语⾔,直接嵌⼊MIS 开发⼯具
传统 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 专门性开发环境相⽐,是⼀种质的飞跃。
C)、强⼤的GIS 功能
新的 GIS 组件都是基于32 位系统平台的,采⽤InProc 直接调⽤形式,所以⽆论是管理⼤数据的能⼒还是处理速度⽅⾯均不⽐传统GIS 软件逊⾊。⼩⼩的GIS 组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能⼒和丰富的空间查询与分析能⼒。
D)、开发简捷
由于 GIS 组件可以直接嵌⼊MIS 开发⼯具中,对于⼴⼤开发⼈员来讲,就可以⾃由选⽤他们熟悉的开发⼯具。⽽且,GIS 组件提供的API 形式⾮常接近MIS ⼯具的模式,开发⼈员可以像管理数据库表⼀样熟练地管理地图等空间数据,⽆须对开发⼈员进⾏特殊的培训。在GIS 或GMIS 的开发过程中,开发⼈员的素质与熟练程度是⼗分重要的因素。这将使⼤量的MIS 开发⼈员能够较快地过渡到GIS 或GM
IS 的开发⼯作中,从⽽⼤⼤加速GIS 的发展。
E)、更加⼤众化
组件式技术已经成为业界标准,⽤户可以象使⽤其他 ActiveX 控件⼀样使⽤GIS 控件,使⾮专业的普通⽤户也能够开发和集成GIS 应⽤系统,推动了GIS ⼤众化进程。组件式GIS 的出现使GIS 不仅是专家们的专业分析⼯具,同时也成为普通⽤户对地理相关数据进⾏管理的的可视化⼯具。
(3) 组件式GIS 开发平台的结构
组件式 GIS 开发平台通常可设计为三级结构:
基础组件 :⾯向空间数据管理,提供基本的交互过程,并能以灵活的⽅式与数据库系统连接;
⾼级通⽤组件 :由基础组件构造⽽成,⾯向通⽤功能,简化⽤户开发过程,如显⽰⼯具组件、选择⼯具组件、编辑⼯具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装后,使⼆次开发更为简单。如⼀个编辑查询系统,若⽤基础平台开发,需要编写⼤量的代码,⽽利⽤⾼级通⽤组件,只需⼏句程序就够了。⾯向通⽤功能;
⾏业性组件 : 抽象出⾏业应⽤的特定算法,固化到组件中,进⼀步加速开发过程。以 GPS 监控为例。
对于GPS 应⽤,除了需要地图显⽰、信息查询等⼀般的GIS 功能外,还需要特定的应⽤功能,如动态⽬标显⽰、⽬标锁定、轨迹显⽰等。这些GPS ⾏业性应⽤功能组件被封装起来后,开发者的⼯作就可简化为设置显⽰⽬标的图例、轨迹显⽰的颜⾊、锁定的⽬标,以及调⽤、接受数据的⽅法等。
(4) GIS 组件的构成
GIS 软件的模型包含若⼲功能单元:
空间数据获取
坐标转换
图形编辑
数据存储
数据查询
数据分析
制图表⽰
…… .
可以想象要把这些所有的功能放在⼀个控件中⼏乎是不可能的,即使实现也会带来系统效率上的低下。⼀般可以认为 GIS 构件的设计主要遵循应⽤领域地需求。例如ESRI 地MapObjects 就是以空间数据访问、查询、制图为主要⽬标的GIS 构件。
(5) GIS 组件产品
GIS 组件的代表作应⾸推MapObjects 以及MapX。其中MapObjects 由全球最⼤的GIS ⼚商ESRI(美国环境系统研究所)推出;MapX 由著名的桌⾯GIS ⼚商美国MapInfo 公司推出。另外还有加拿⼤科技集团的TITAN 等。下表是MapObjects 和MapX 的主要功能对⽐。
应⽤及评价
软件的构件化已成为软件技术发展的潮流。基于 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、*.ind ⽂件格式组成。
B)、图形对象
MapInfo 内置的数据库管理系统是⼀种关系型数据库管理系统,也是⽤⼆维表组织数据。与其它关系型数据库不同的是表结构中除可包含常⽤类型的属性列外,还引⼊⼀个图形对象列(OBJ 列),⽤于存储图形对象(如线、区域等)。MapInfo 提供许多图形对象的操作接⼝,利⽤这些接⼝可以⽣成和
处理所需要的各种图形。
C)、地图图层化
MapInfo 是按图层组织计算机地图的。也就是说,将⼀幅计算机地图加⼯成多个层层叠加的透明层,这个透明层就称为图层。每个图层包含了整个地图的⼀个不同⽅⾯。例如,第⼀个图层包含省边界,第⼆个图层表⽰省府的符号,第三个图层由标注⽂本组成,把它们层层叠加就形成⼀幅完整的地图。在创建每⼀个图层时,都要为其建⽴⼀张表,MapInfo 就是通过这种⽅式使表与地图之间建⽴了联系。
也就是说, MapInfo 是以表的形式来进⾏管理的,每个表⼀般包含两部份:地图部分和数据库(属性)部份。
D)、专题地图
提供多种数据可视化的专题地图,能将数据库中的信息进⾏直观的可视化分析。使⽤专题渲染在地图上显⽰数据时,可以清楚地看出在数据记录中难以发现的模式或趋势,为⽤户的决策提供依据。专题地图包括范围值、点密度、柱状图、等级符号、饼图和独⽴值六种形式。
E)、内置ODBC
MapInfo 内置ODBC,⽀持各种关系型数据库,⽀持SQL 查询,从⽽保证了对原有数据库的沿⽤和对远程数据库地访问。具备空间查询的功能扩展(如缓冲区、叠加等),采⽤数据仓库的最新技术OLAP(Online Analytical Processing)的联机事物处理,对于应⽤程序实现图形查询和表查询提供了强⼤的⼿段。
F)、⽀持多种数据格式及其转换
MapInfo 既⽀持数字化仪的图形输⼊⽅式,直接⽣成⽮量图,也⽀持⽬前市场上流⾏的图形图象格式。可接受AutoCAD 的DWG、DXF 标准⽂件格式,还可通过MIF 及MID ⽂件与其它软件建⽴数据的接⼝。其中MIF ⽂件内保存有图形信息,MID ⽂件内保存有图形的属性信息。MIF 及MID ⽂件通过MapInfo 的菜单命令Import 和Export 来输⼊和产⽣。
G)、⼆次开发⼯具MapBasic
作为⼀个系统软件, MapInfo 提供了可以将其所有的功能⽤程序来驱动的⽅法,内置标准的⼆次开发⼯具—— MapBasic。MapBasic 不仅与⼤众化的Basic 语法相⼀致,具有基本⼀致的常⽤函数集(计算、字符串处理、⽂件I/O、DLL 调⽤等),⽽且利⽤MapBasic 语⾔所提供的函数、过程和语句命令可以完成许多有关图形对象管理的复杂操作和运算。它的真正优势在于对MapInfo 中的Table 及其图形对象的管理所提供的特性和强⼤功能。采⽤⾯向对象及事件驱动编程
H)、集成⼆次开发能⼒
具有 OLE 和 OLE Automation 功能,可以⽅便地使⽤ Delphi 、 VB 、 VC 等多种开发⼯具,保证了新的应⽤程序与原有的应⽤界⾯保持⼀致,为⽇后的深层开发提供⼀个扩展空间。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论