




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、mapx核心技术剖析第二章组件式gis与mapx、组件技术组件技术的兴起目前,在软件开发领域,一场新的革命正在悄悄兴起,这是由ei 趋成熟的组件技术引发的。几年以前,当微软公司首先使用ole的时 候,其初衷是为了增强软件的互操作性。然而在使用过程中,人们逐 渐认识到这一技术背后的实质性内容和它在软件开发屮所扮演的重 要角色。组件技术以前所未有的方式提高了软件产业的生产效率,这 一点已逐步成为软件开发人员的共识。传统的c/s结构、群件、中间 件等大型软件系统的构成形式,都将在组件的基础上重新构造。组件技术使近二十年来兴起的而向对象技术进入到成熟的实用 化阶段。在组件技术的概念模式下,软件系统可以
2、被视为相互协同工 作的对象集合,其中每个对象都会提供特定的服务,发出特定的消息, 并且以标准形式公布出来,以便其他对象了解和调用。组件间的接口 通过一种与平台无关的语言idl (interfacedef inelanguage)来定 义,而且是二进制兼容的,使用者可以直接调用执行模块来获得对象 提供的服务。早期的类库,提供的是原代码级的重用,只适用于比较 小规模的开发形式;而组件则封装得更加彻底,更易于使用,并且不 限于c+ +之类的语言,可以在各种开发语言和开发环境中使用。由于组件技术的出现,软件产业的形式也随之发生了很大的变 化。人量组件生产商涌现出来,并推出各具特色的组件产品;软件集 成
3、商则利用适当的组件快速生产出用户需耍的某些应用系统;大而全 的通用产品逐步减少;很多相对较为专业,但用途广泛的软件,如 gis、语音识别系统等,都以组件的形式组装和扩散到一般的软件产 品中。com 与 dcomcom是组件式对象模型(component object model)的英文缩写, 是组件之间相互接口的规范,是ole (object linking & embedding) 和activex共同的基础,其作用是使各种软件构件和应用软件能够用 一种统一的标准方式进行交互。com不是一种面向对象的语言,而是 一种与源代码无关的二进制标准。com所建立的是一个软件模块与另 一个软件
4、模块之间的链接,当这种链接建立之后,模块之间就可以通 过称z为“接口”的机制来进行通信。com标准增加了保障系统和组 件完整的安全机制,并扩展到分布式环境。com本质上仍然是客户/服务器模式。客户(通常是应用程序) 请求创建com对象并通过com对象的接口操纵com对象。服务器根据 客户的请求创建并管理com对象。客户和服务器这两种角色并不是绝 对的。基于分布式环境下的com被称作dcom (distribute com,分布式 构件对象模型)o dcom是activex的基础,它实现了 com对象与远程 计算机上的另一个对象z间直接进行交互。dcom规范定义了分散对 象创建和对象间通信的机制
5、,规范本身并不依赖于任何特定的编程语 言和操作系统,但冃前该标准只在microsoft windows平台实现,这 就意味着其它的操作系统平台(如unix)目前还不支持activexodcom的实现采用了 dcom库的形式,当dcom客户对象需要dcom 服务器对象的服务时,dcom库负责生成dcom服务器对象并在客户对 象和服务器对象z间建立初始连接,一旦返回服务器对象指针,dcom 库就不再参与客户对象与服务器对象之间的工作,两个对象之间可以 自由地进行通信。dcom接口实际上时逻辑上和语义上相关联的函数集。服务器对 象通过dcom接口为客户对象提供服务,客户对象不需了解服务器对 象的内部
6、数据表示。接口可以看成两个软件构件z间的一种协议,协 议表明服务器对象为客户对象提供一种且仅此一种服务。接口采用全 局唯一标识符(guid)来保证服务的唯一性。通常的dcom构件提供 多种服务,那么服务器对象为每一种服务实现一个接口。当客户对象 指针指向相应的服务器对象吋,它就激活服务器对象接口的相应函 数。具体过程是:客户对象通过dcom对象必须支持的iunknown接口 获得其它接口的指针。客户对象也许并不知道服务器对象的每个接 口,但这并不妨碍客户对象对服务器对象的使用,它只用它知道的接 口。当客户对象用完服务器对象的服务时,它会通知服务器对象,服 务器对象就释放它所占有的内存。dcom
7、的好处是显而易见的。由于接口的定义和功能保持不变, dcom构件开发者可以改变接口功能、为对象增加新功能、用更好的 对象來代替原有对象,而建立在构件基础上的应用程序儿乎不用修 改,大大提高了代码的重用性。activex 与 activex 控件(1) 、 activexactivex是微软公司的构件技术标准,实际上是对象嵌入与炼接 (ole)的新版木,使ole接口加强了对数据和特性的管理,效率更 高,而且更加便于进彳亍internet互操作。作为针对internet应用开 发的技术activex被广泛应用于web服务器以及客户端的各个方面。 同时,activex技术也被用于方便地创建普通的桌面
8、应用程序。activex既包含服务器端技术,也包含客户端技术。其主要内容 是:? activex 控制(activex control):用于向 web 页面、microsoft word等支持activex的容器(container)中插入com对象;? activex 文档(activex document):用于在 web browser 或 者其它支持activex的容器中浏览复合文档(非html文档),例如 microsoft word文档、microsoft excel文档或者用户自定义的文档 等;? activex脚木描述(activex scripting):用于从客户端或者
9、服务器端操纵activex控制和java程序、传递数据以及协调它们之 间的操作等;? activex 服务器框架(activex server framework):提供了 一系列针对web服务器应用程序设计各个方面的函数及其封装类,诸 如服务器过滤器、html数据流控制等;?在 internet explorer 中内置 java 虚拟机(java virtual machine),从而使 java applet 能够在 internet explorer 运行, 并可以与activex控制通过脚木描述语言进行通信。(2) 、activex 控件activex控件是充分利用ole和activ
10、ex技术的口定义控件,是 基于与应用程序无关的思想而设计的,其目标是提供一种面向对象、 与操作系统无关、与机器平台无关、可以在应用程序z间互相访问对 象地机制。activex控件是建立在com标准上的独立的软件元件,提供给用 户应用接口,发送和应的事件,开发者则可以截取这些事件,执行相 应的功能。activex控件开发端和使用端是完全独立的,可以用 delphi. vb等各种语言来开发,乂可以用于不同语言、不同开发平 台、不同的系统环境中。activex控件与vbx不同,vbx的标准是建 立在16位段式结构的基础上,并不适用于32位环境。activex控件 可以在32位环境下提供与vbx相类似
11、的功能。一个或多个activex 控件会保存在一个动态链接库中,但它是一种特殊的动态链接库,其 扩展名不是dll而是ocx。从本质上讲,activex控件是一个activex服务器,它能提供所 有的ole功能和服务,包括可视化编辑、拖放和ole automationo 与所有的activex服务器一样,要使用activex控件,必须先对 activex控件进行注册,应用程序通过注册后得到的类id号找到控 件的数据源进行访问。activex控件可以由vb、vc、delphi等开发 工具生成ocx文件吋自动进行注册,也可以手工注册,其实质都是通 过运行应用程序regsvr32. exe来实现。re
12、gsvr32. exe 一般在操作系 统的系统文件目录下,如windows 85/98的windowssystem目录、 windows nt 的winntsystem32 冃录。在 regsvr32. exe 应用程序的 命令行屮输入activex控件的网络共享路径。网络路径的形式为 机器名共享目录名文件名。假如,服务器名为mainserver,目录 名为controls,控件名为mapx,则注册命令为:regsvr32 mainservercontrolsmapx ocx(3) 、activex与activex控件的区别activex技术是ole技术在internet上的重定义,而acti
13、vex 控件则是ole控件在internet上的扩展。activex不等同于activex构件,从上面的介绍可知,activex 是一个很宽的技术家族的标识,而activex构件只是那个家族的一个 特定技术。二、组件技术与gis的发展引言组件式软件技术已经成为当今软件技术的潮流之一,为了适应这 种技术潮流,gis软件象其他软件一样,已经或止在发生着革命性的 变化,即由过去厂家提供了全部系统或者具有二次开发功能的软件, 过渡到提供组件由用户自己再开发的方向上來。无疑,组件式gis技 术将给整个gis技术体系和应用模式带来巨大影响。gis技术的发展,在软件模式上经历了功能模块、包式软件、核 心式软
14、件,从而发展到组件式gis和webgis的过程。传统gis虽然 在功能上已经比较成熟,但是由于这些系统多是基于十多年前的软件 技术开发的,属于独立封闭的系统。同吋,gis软件变得日益庞大, 用户难以掌握,费用昂贵,阻碍了 gis的普及和应用。组件式gis的 出现为传统gis面临的多种问题提供了全新的解决思路。组件式gis的基本思想是把gis的各大功能模块划分为几个控 件,每个控件完成不同的功能。各个gis控件z间,以及gis控件与 其它非gis控件z间,可以方便地通过可视化的软件开发工具集成起 来,形成最终的gis应用。控件如同一堆各式各样的积木,他们分别 实现不同的功能(包括gis和非gis
15、功能),根据需要把实现各种功能 的“积木”搭建起來,就构成应用系统。组件式gis系统的特点把gis的功能适当抽象,以组件形式供开发者使用,将会带来许 多传统gis工具无法比拟的优点。(1) 、小巧灵活、价格便宜由于传统gis结构的封闭性,往往使得软件本身变得越来越庞 大,不同系统的交互性差,系统的开发难度大。在组件模型下,各组 件都集中地实现与自己最紧密相关的系统功能,用户可以根据实际需 要选择所需控件,最大限度地降低了用户的经济负担。组件化的gis 平台集中提供空间数据管理能力,并但能以灵活的方式与数据库系统 连接。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传 统gis开发工具的十
16、分之一,甚至更少。这样,用户便能以较好的性 能价格比获得或开发gis应用系统。(2) 、无须专门gis开发语言,直接嵌入mis开发工具传统gis往往具有独立的二次开发语言,对用户和应用开发者而 言存在学习上的负担。而且使用系统所提供的二次开发语言,开发往 往受到限制,难以处理复杂问题。而组件式gis建立在严格的标准之 上,不需要额外的gis二次开发语言,只需实现gis的基本功能函数, 按照microsoft的activex控件标准开发接口。这有利于减轻gis软 件开发者的负担,而且增强了 gis软件的可扩展性。gis应用开发者, 不必掌握额外的gis开发语言,只需熟悉基于windows平台的通
17、用集 成开发环境,以及gis各个控件的属性、方法和事件,就可以完成应 用系统的开发和集成。冃前,可供选择的开发环境很多,如visual c+>visual basic>visual foxproborland c+、delphi、c+ builder 以及power builder等都可直接成为gis或gmis的优秀开发工具, 它们各口的优点都能够得到充分发挥。这与传统gis专门性开发环境 相比,是一种质的飞跃。(3) 、强大的gis功能新的gis组件都是基于32位系统平台的,采用inproc直接调用 形式,所以无论是管理大数据的能力还是处理速度方面均不比传统 gis软件逊色。小小
18、的gis组件完全能提供拼接、裁剪、叠合、缓冲 区等空间处理能力和丰富的空间查询与分析能力。(4) 、开发简捷由于gis组件可以直接嵌入mis开发工具中,对于广大开发人员 來讲,就可以自由选用他们熟悉的开发工具。而且,gis组件提供的 api形式非常接近mis工具的模式,开发人员可以像管理数据库表一 样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。在 gis或gmis的开发过程中,开发人员的素质与熟练程度是十分重要 的因素。这将使大量的mis开发人员能够较快地过渡到gis或gmis 的开发工作中,从而大大加速gis的发展。(5) 、更加大众化组件式技术已经成为业界标准,用户可以象使用其
19、他activex控 件一样使用gis控件,使非专业的普通用户也能够开发和集成gis应 用系统,推动了 gis大众化进程。组件式gis的出现使gis不仅是 专家们的专业分析工具,同时也成为普通用户对地理相关数据进行管 理的的可视化工具。组件式gis开发平台的结构组件式gis开发平台通常可设计为三级结构:?基础组件面向空间数据管理,提供基本的交互过程,并能以灵活的方式与 数据库系统连接;?高级通用组件由基础组件构造而成,面向通用功能,简化用户开发过程,如显 示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。 它们z间的协同控制消息都被封装起來。这级组件经过封装后,使二 次开发更为简单。如
20、一个编辑查询系统,若用基础平台开发,需要编 写大量的代码,而利用高级通用组件,只需几句程序就够了。面向通 用功能;?行业性组件抽象出行业应用的特定算法,固化到组件中,进一步加速开发过 程。以gps监控为例。对于gps应用,除了需要地图显示、信息查询 等一般的gis功能外,还需要特定的应用功能,如动态目标显示、目 标锁定、轨迹显示等。这些gps行业性应用功能组件被封装起来后, 开发者的工作就可简化为设置显示目标的图例、轨迹显示的颜色、锁 定的目标,以及调用、接受数据的方法等。gis组件的构成gis软件的模型包含若干功能单元,诸如空间数据获取、坐标转 换、图形编辑、数据存储、数据查询、数据分析、制
21、图表示等。可以 想象要把这些所有的功能放在一个控件中儿乎是不可能的,即使实现 也会带来系统效率上的低下。一般可以认为gis构件的设计主要遵循 应用领域地需求。例如esri地mapobjects就是以空间数据访问、查 询、制图为主要目标的gis构件。gis组件产品gis组件的代表作应首推mapobjects以及mapx等。其中 mapobjects由全球最大的gis厂商esri (美国环境研究所)推出;mapx 由著名的桌面gis厂商美国mapinfo公司推出。另外还有加拿大阿波 罗科技集团的titan等。下表是mapobjects和mapx的主要功能对比。功能 mapobjects mapx显
22、示的地图数据格式arcview的shp、arc/info的coverage> sde图层mapinfo的数据格式叠加栅格图像有有对地图的常用操作放大、缩小、漫游等放大、缩小、漫游等图层控制 增加、移走、设置当前层 增加、移走、设置当前层属性数据绑定 有 有地图信息查询方式1.通过鼠标选取特征2. 通过sql查找特征3. 通过空间操作选取特征1.通过鼠标选取特征2. 通过sql查找特征3. 通过空间操作选取特征专题地图较弱有gps集成有有用户绘图图层无有生成/编辑地图对象较弱较弱地图标注有有地图符号化较弱较强分析功能无无地理编码有有可使用的开发语言 vc、vb、powerbu订der、de
23、lphi> access 等 vc、vb> powerbuilder、delphi lotus notes 等表4. 1mapobjects和mapx的主要功能对比应用及评价软件的构件化已成为软件技术发展的潮流。基于dcom的activex 构件实现,已成为软件工业的一种标准。伴随着未来其它非windows 平台对activex的支持activex构件化的gis软件系统将对gis的 体系结构和gis将來的应用前景产生深远影响。虽然采用gis构件在开发上有许多优势,但是不可避免的也存在 一些功能上的欠缺和技术上的不成熟,主要包括以下几个方面:?与专业的gis客户端软件相比,采用构件技
24、术不可避免的带 来效率上的相对低下,这在访问超大空间数据(如大数据量的遥感图 象)的时候表现得尤为明显;?支持的空间数据量有限;?支持的功能有限,由于是构件,只覆盖了 gis系统的部分功 能,于是对于特殊领域,它就显得无能为力;?系统的可靠性、容错性有待提高。dcom的一大特点是:开发 及使用过程屮必须时刻注意windows系统ole系统注册表的正确。三、maplnfo札i关技术map info公司及其产品美国mapinfo公司致力于为用户提供先进的数据可视化、信息地 图化技术,并将这些技术与主流业务系统集成,提供完整的解决方案。 mapinfo吸取了传统gis系统的精华,并借助于计算机技术的
25、发展, 及吋将gis概念从中大型计算机的专用工作站上介绍至普通桌面pc 上,开创了崭新桌面地图信息系统。mapinfo公司的主要系列产品有:? 桌面地理信息系统map info professional? 网络解决方案map info proserev? 数据库服务器产晶mapinfo spatial ware? mapinfo activex? dec alpha. nt 产品 map info professional for dec alpha nt? 开发t具 mapinfo mapbasicmapinfo空间数据的拓扑关系模型空间数据的拓扑关系模型是地理信息系统的基石。当前商用地理
26、信息系统中,主要采用polyvrt结构和“空间实体+空间索引”两种 模型。mapinfo采用称作“空间实体+空间索引”的的拓扑关系模型。80年 代中后期出现的商用地理信息系统,尤其是桌面地理信息系统大多采 用这种方式,包括esri的arcviewo而采用polyvrt模型的系统主 要是以arc/info为代表的一些专业gis产品。“空间实体+空间索引”模型的基础是“空间实体”。空间实体 是地理实体的抽象,主要包括点、线、面-:种类型。每个空间实体对 象都维护着自己的所有属性。多个空间实体组成一个图层。“空间实体+空间索引”模型的空间查询功能是通过“空间索 引”技术來实现的。空间索引的目的是对给
27、定的空间坐标,能够以尽 快的速度搜索到坐标范围内的空间对象。maplnfo采用r-tree技术 将空间实体的最小外接矩形(mbr)存储在索引中,并按从大到小的 顺序进行索引搜索。建立了空间索引,就能快速地进行空间分析了。相对于,polyvrt的优点是多个不同的对象可以共用相同的结点, 节省存储空间,但由此产生的问题是其结构更加复杂,数据的编辑和 维护比较困难。而“空间实体+空间索引”模型虽然会造成公共结点 的重复存储,但是其结构化的实体模型使得对某个对象的更改不会影 响到其它对象的定义,从而大大增强了空间数据的可维护性。另外,基于polyvrt结构的空间数据组织不能被规范为关系模 式,而基于“
28、空间实体+空间索引”模型可以规范为“实体-关系”模 型,从而可以与关系数据库系统结合,在关系数据库内实现对空间数 据的查询、分析和处理等操作。主要技术特点(1) 、以表(table)的形式组织信息每一个表都是一组mapinfo文件,这些文件组成了地图文件和数 据库文件。为使用mapinfo,就需要有组成表的用户数据和地图文件。 这些文件可以來自mapinfo或者由用户创建。用户要想在mapinfo中 工作,就必须打开一个或多个表。mapinfo通过表的形式将数据与地图有机地结合在一起。当用户在 map info中打开数据文件时,maplnfo将创建一个表。这个表至少由 两个独立的文件组成,一个
29、是包含数据结构的文件,另一个是包含原 始数据的文件。一个典型的map info表将主要由*tab、*. dat、* wks、 *dbf > *. xls> *. map、*id> *ind文件格式组成。(2) 、图形对象mapinfo内置的数据库管理系统是一种关系型数据库管理系统, 也是用二维表组织数据。与其它关系型数据库不同的是表结构屮除可 包含常用类型的属性列外,还引入一个图形对象列(obj列),用于 存储图形对象(如线、区域等)o maplnfo提供许多图形对象的操作 接口,利用这些接口可以生成和处理所需要的各种图形。(3) 、地图图层化map info是按图层组织计算
30、机地图的。也就是说,将一幅计算机 地图加工成多个层层叠加的透明层,这个透明层就称为图层。每个图 层包含了整个地图的一个不同方面。例如,第一个图层包含省边界, 第二个图层表示省府的符号,第三个图层由标注文木组成,把它们层 层叠加就形成一幅完整的地图。在创建每一个图层时,都要为其建立 一张表,maplnfo就是通过这种方式使表与地图z间建立了联系。也就是说,mapinfo是以表的形式來进行管理的,每个表一般包含两 部份:地图部分和数据库(属性)部份。(4) 、专题地图提供多种数据可视化的专题地图,能将数据库中的信息进行直观 的可视化分析。使用专题渲染在地图上显示数据时,可以清楚地看出 在数据记录中
31、难以发现的模式或趋势,为用户的决策提供依据。专题 地图包括范围值、点密度、柱状图、等级符号、饼图和独立值六种形 式。(5) 、内置 odbcmapinfo内置odbc,支持各种关系型数据库,支持sql查询,从 而保证了对原有数据库的沿用和对远程数据库地访问。具备空间查询 的功能扩展(如缓冲区、叠加等),采用数据仓库的最新技术olap(online analytical processing)的联机事物处理,对于应用程序 实现图形查询和表查询提供了强大的手段。(6) 、支持多种数据格式及其转换mapinfo既支持数字化仪的图形输入方式,直接生成矢量图,也 支持目前市场上流行的图形图象格式。可接受
32、autocad的dwg、dxf 标准文件格式,还可通过mif及mid文件与其它软件建立数据的接口 o 其中mif文件内保存有图形信息,mid文件内保存有图形的属性信息。 mif及mid文件通过mapinfo的菜单命令import和export來输入和 产生。(7) 、二次开发工具mapbasic作为一个系统软件,mapinfo提供了可以将其所有的功能用程序 來驱动的方法,内置标准的二次开发工具mapbasi c。mapbas i c不仅与大众化的basic语法相一致,具有基木一致的常用函数集(计 算、字符串处理、文件i/o、dll调用等),而且利用mapbasic语言 所提供的函数、过程和语句
33、命令可以完成许多有关图形对象管理的复 杂操作和运算。它的真正优势在于对mapinfo中的table及其图形对 象的管理所提供的特性和强大功能。采用面向对象及事件驱动编程(8) 、集成二次开发能力具有ole和ole automation功能,可以方便地使用delphi、vb、 vc等多种开发工具,保证了新的应用程序与原有的应用界面保持一 致,为h后的深层开发提供一个扩展空间。mapinfo的数据组织mapinfo采用双数据库存储模式,即其空间数据与属性数据是分 开来存储的。属性数据存储在关系数据库的若干属性表中,而空间数 据则以mapinfo的自定义格式保存于若干文件中,二者通过一定的索 引机制
34、联系起來。为了提高查询和处理效率,mapinfo采用层次结构 对空间数据进行组织,即根据不同的专题将地图分层(图层还可以分 成若干图幅),每个图层存储为若干个基本文件。(1) 、属性数据的表结构文件.tab属性数据表结构文件定义了地图属性数据的表结构,包括字段 数、字段名称、字段类型和字段宽度、索引字段及和应图层的一些关 键空间信息描述。tab文件实际上是一个文本文件,可以在写字板 中打开观察其内容。(2) 、属性数据文件.dat属性数据文件中存放完整的地图属性数据。在文件头之后,为表 结构描述,其后首尾相接地紧跟着各条具体地属性数据记录。(3) 、交叉索引文件id交叉索引文件记录了地图屮每一
35、个空间对象在空间数据文件 (.map)屮的位置指针。每四个字节构成一个指针。指针排列的顺序 与属性数据文件(.dat)屮属性数据记录存放的顺序一致。交叉索引 文件实际上是一个空间对象的定位表。(4) 、空间数据文件.map具体包含了各地图对象的空间数据。空间数据包括空间对象的儿 何类型、处标信息和颜色信息等。另外还描述了与该空间对象对应的 属性数据记录在属性数据文件(.dat)中的记录号。这样,当用户从 地图上查询某一地图对象时,就能够方便地查到与z和关的属性信 息。图2. 1 mapinfo的文件格式 及数据关联机制(5) 、索引文件.ind索引文件并不是必须的,只有当用户规定了数据库的索引
36、字段后 mapinfo才会自动产生索引文件。索引文件屮对应于每个索引字段都 有一个索引表。在每个索引表中,先给出总的数据库记录数目,然后 按照索引顺序给出每条属性数据记录在对应的索引字段处的具体属 性数据和该记录在属性文件(.dat)及交叉索引文件(.id)中的记 录号。图2. 2表示了 mapinfo的索引文件机制。图2. 2 mapinfo的索引文件格式及数据关联机制四、mapx研究mapx简介mapx是mapinfo公司向用户提供的具有强大地图分析功能的 activex控件产品。由于它是一种基于windows操作系统的标准控件, 因而能支持绝大多数标准的可视化开发环境如visual c+
37、、visual basic> delphi> powerbuilder等。编程人员在开发过程屮可以选用 自己最熟悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以 脱离maplnfo的软件平台运行。利用mapx,能够简单快速地在企业 应用屮嵌入地图化功能,增强企业应用的空间分析能力,实现企业应 用的增值。mapx采用基于map info professional的和同的地图化技 术,可以实现map info professional具有的绝大部分地图编辑和空 间分析功能。而且,mapx提供了各种工具、属性和方法,实现这些 功能是非常容易的。mapx的空间数据结构空间数据结构,是g
38、is的基石,gis就是通过这种地理空间拓扑 结构建立地理图形的空间数据模型并定义各空间数据之间的关系,从 而实现地理图形和数据库的结合。图2. 3 mapx的空间数 据结构从横向分析,mapx采取的空间数据结构是基于空间实体和空间 索引相结合的一种结构。空间实体是地理图形的抽象模型,主要包括 点、线、面三种类型。任何点、线、面实体都可以用直角坐标点x、 y来表示。点可以表示成一组坐标(x, y),对于线和面,则均被表 示成多组坐标(xl, yl; x2, y2; xn, yn)o空间索引是查询空间实 体的一种机制,通过空间索引,就能够以尽量快的速度查询到给定坐 标范围内的空间实体及其所对应的数
39、据。从纵向分析,mapx的空间数据结构是一种分层存放的结构。用 户可以通过图形分层技术,根据自己的需求或一定的标准对各种空间 实体进行分层组合,将一张地图分成不同图层。采用这种分层存放的 结构,可以提高图形的搜索速度,便于各种不同数据的灵活调用、更 新和管理。图2. 4 mapx的模型结mapx组件的模型结构mapx组件的基本组成单元是object (单个对象)和collection (集合)。其屮集合包括对象,是多个对象的组合。每种对象和集合 负责处理地图某一方面的功能。由图2. 4可以看出,位于顶层的是map对象本身,其它均由map 对象继承。layers> datasets、ann
40、otations是map对象下面的三个 重要的分支。其中layer主要用于操作地图的图层,dataset用于访 问空间数据表,annotation用于在地图上增加文木或者符号。mapx的显著特征?专题地图将数据库表中的特定值赋给地图对象的颜色、图案或符号从而创 建不同的专题地图;可创建范围值、等级符号、点密度、独立值、直 方图和饼图6种方式的专题地图;?可深入的地图通过简单的点击方式可浏览与地图对象相连的数据信息;?数据绑定地图可通过嵌入ocx的容器与数据库相连,并提供了儿种不同的 数据绑定方式包括zip code-level地理编码法;?注解可提供方向、加亮显示特殊数据,还可加入文木、符号、
41、表格使 地图信息更加丰富直观;?图层显示和控制图层的缩放、使用或创建无缝地图、还可支持一些特 殊的应用,比如用于实时跟踪的活动图层和可绘制特殊图形的用户自 定义图层(如logo图案);?栅格图象采用栅格图象作为地图的基础图层可使其它图层有一个更细致 的背景;?自动标记自动在地图上加入标记,同吋标记属性和显示;?选择可在地图上拖动鼠标以在圆、矩形或特定的点上选择一个或多个 对象或记录以供分析;?对象库可以使用featurefactory对象,创建、联接或删除点、线、区 域图形对象;?工具使用mapx的标准工具或根据需要自己创建的自定义工具,用户 可通过点击或拖拽对地图直接进行操作;?地图编辑允许
42、用户添加、修改、删除地图上的文木、编辑区域、点等特殊 对象;?投影与处标系mapx允许用户调整地图的显示、用木地坐标系处理x-y坐标数 据;?远程空间数据服务器可以访问存储在0racle8i和map info spatialware中的远程地 图数据。空间数据服务器如spatialware和0racle8i等都提供了先 进的查询处理能力,提高了空间数据组织的性能。将空间数据存储 到关系型数据库中,可以增加应用程序的灵活性,同吋也要求在地图 编辑和大数据集方面做更多的工作。mapx的基本属性? map每个map对象主要包括datasets、layers> annotations三个对 象集
43、合。map对象有一些主要的属性,如zoom用來设置放大级别(在地 图上显示的大小),rotation控制地图的旋转角度,centerx和 centery用于设置x和y的坐标系,这要取决于地图的投影。map对象的许多属性木身又是一个对象,比如说一幅地图由多个 图层组成,则在一个map对象屮存在一个单独的layers集合,其屮 包含所有图层的信息。? layers在mapx中,每张单独的地图都被表示成单独的一个图层,所有 的图层存储在layers集合中。layers集合由layer对象组成,按顺 序编号为0到no layer对象由features对象组成,features对象 乂是由feature
44、对象组成,对应于地图中的点、线、区域或符号。最上面一层为layers (1), layers (2)位于layers (1)的下面,以 次类推。最下面的图层最先绘制,最上面的图层最后绘制。在应用程 序中,合理地安排好每层在layers中的顺序是至关重要的。比如说 有两个图层,一层为点,一层为区域,则应将点层放到区域层的上方, 否则区域会将点覆盖。另外,在进行地图选择操作吋,根据要求调整图层的顺序也是十 分重要的。mapx中的选择工具总是从可选择图层中的故上层开始选 择,如果在地图上的同一位置存在多个位于不同层的地图对象,其结 果是很难精确地选择到目标对象。因此,最好将被选择图层提到最上 层显示
45、。? geosetsgeoset是在geomanager中建立好的gst文件,类似map info中 的workspace概念,是图层及其设置的集合,控制程序中显示的地图。 也可以在运行阶段设置geoset,此吋将导致已经加载的所有图层和 dataset被删除而由geoset中定义的图层所代替。如果单纯地想删 除所有图层,只需给geoset赋一个空字符串即可。可以使用geoset manager程序来管理geoset文件(*gst)。 默认情况下gst文件存储在niapxinaps目录下,可以调用 geodictionary manager程序进行修改,指向用户程序数据所在的位 置。? dat
46、asetsdatasets用于实现地图与数据的绑定。举例说明,有一个关于 城市销售情况的msaccess数据库和一张该城市的地图,则可以将二 者绑定,在地图上形象地显示出各城市销售业绩的趋势,这一点是表 格数据无法做到的。建立地图信息与属性数据之间联系的过程称之为口动绑定或口 动匹配(autobinding /automatching)o要实现这一过程,必须首先 将地图在geodictionary中注册。属性数据表示的可视化使得创建专题地图成为可能。数据绑定"putting your data on the map"专题地图"theme mapping and a
47、nalysis"? annotationsannotations集合提供了操纵地图中文字和符号的简单方法。 annotations位于所有其它图层的上方并且不与任何数据连接,有点 儿象map info中的透明图层。annotations包括以下主要的属性与方法:addsymbol在 annotations中增加符号,符号类型使用map. defaultstyle定义; addtext在 annotations中增加文本;remove删除特定的标注; type 取值为 misymbolannotation 或 mitextannotation0annotations还有一个非常重要的属
48、性graphic,其定义为 graphic对象,在该对象中包含了符号或文本的样式、位置等信息, 即 graphic 的 caption> position> style、x、y 属性。如 annotations 的type属性定义为mitextannotation,则可以定义graphic的 caption属性设置标注的字符串。?可创建对象在mapx对象模型中,以下对象是可以被创建的:affinetransform>bindlayer>bitmapsymbols>coordsys>datum> feature> fields> layerl
49、nfo> map、odbcqueryinfo> parts> point> points、 rectangle、 rowvalue> rowvalues> style> variables> notesqueryinfo> notesviewinfoo 在delphi中创建这些对象需要注意一点,即在后面注明mapx的版木。 如在本课题实现过程屮,由于使用的是mapx 4. 0版本,因此创建语 句要写成s :二 createoleobject (' mapx. style. 3);五、mapx的两个实用应用程序geodictionar
50、y managergeodictionary其实是一个二进制文件,默认文件名为geodict. det,在这个文件中包含了 mapx进行口动数据绑定时可以进 行匹配的mapinfo表的注册信息。只有能够被匹配的mapinfo表可以 在geodictionary中注册。需要注意的是,没必要将应用程序中用到 的所有表(.tab文件)注册,因为注册一些不必要的表将导致额外 的开销。应用程序geodictionary manager的作用是用來操纵与管理 geodictionaryo 可执行文件 geodictionarymanager40. exe 既可以运 行于图形界面也可以使用命令行参数,在进行
51、程序安装时,命令行参 数可以用來调用geodictionarymanager40. exe以注册相关的 map info 表。每当创建一幅地图吋,mapx就会在注册表的 hkey_l0cal_machinesoftwaremapinfomapx4. 0中查询geodictionary的注册键值。注册键值主要包括两方面的 信息:是geodictionary,用于定位dct文件;二是searchpaths, 其值是缺省的数据目录,用于定位gst文件,可以是多个目录,z 间用逗号隔开。对于注册键可以有三种取值: 包含geodictionary文件的完整目录,如c: program filesmapi
52、nfo mapxmapsgeodict. det。数据冃录被设置成相应的 目录,在上例中为 c:program filesmapinfo mapxmapso 只包含冃录信息如 c: program filesmapinfo ma.pxmapso 数 据目录也被设置成这个目录。 为空值map. geodictionary 的缺省值时"geodictionary",这就意味着 mapx会在注册表屮查询hkey_l0cal_machinesoftwaremapinfomapx4. 0geodictionaryo除了使用默认的geodict. dct文件,也可以根据需要自己建立。
53、新建一个dct文件,在geodictionary manager中打开,注册必要 的.tab文件并进行相应的设置即可。在mapx 4.0和更高版本中,mapx的运行不再需要一个永久的 geodictionary 文件。geoset manager在mapx中,地图是分层显示的,每一层都对应一个表,即.tab 文件。我们的工作往往不是只针对某一个表,如果每次开始工作都重 复性地将所用到的表一一打开,不仅麻烦,而且浪费吋间。通过使用 geoset manager,可以将所有的工作表集中在一起,连同每一层的设 置一并存储到个gst文件中,下次使用时,只需打开此文件就可 以了。在geoset mana
54、ger中,可以浏览已定义的geoset,也可以建立 新的geoseto可以调出layers控制对话框对每一图层分别进行设置, 还可以改变投影方式。另外,在tools菜单中提供了 register layers in geodictionary项,可以将当前.gst中的某些或全部.tab文件直 接注册到geodictionary中。第三章关键技术分析与难点攻克一、地图的获取空间地理数据的获取方式地理信息系统的故主要特点是能以电子地图的形式,直观地表现 背景地物信息,并可做图文互查、综合分析等。因此,在系统开发的 最初阶段,首要的问题就是准备一张包括和关地理信息的电子地图。空间地理数据的获取主要有
55、以下儿种方式:?使用数字化仪使用手扶跟踪数字化仪,通过人丁选点或跟踪线段产生坐标数 据。一般用于比较规则的地图或原图质量不太理想的地图,可利用 autocad软件进行编辑修改。?利用扫描仪利用扫描仪把图纸信息扫描后以栅格数据结构形式存储,再经其 它图象处理软件进一步处理改善图象质量,如图形拼接、降噪、细化 等,并把栅格数据转换为矢量数据格式。这种方式要求图纸质量较好 软件自动化程度高,交互式工具方便可靠。?键盘键入顾名思义,就是通过手工在计算机终端上输入地图数据。?购买商业性数据商业性数据可以拿来直接使用。冃前电了地图作为一种信息商 品,日益受到各界青睐,常见的产品有:卫星影象图地球资源卫 星
56、获得的地表景观影象数据;电子地形图通过分层技术将多种地 理要素分成独立的信息层,每层具有同一属性的地理要素,如等高线、 行政界线、道路、水系等;专题电子地图如土壤类型图、人口专 题图等。?从其它部门获得数字拷贝根据某些部门标准的原始数据文件,进行数据格式转换,最终形 成map info可以识别的数据格式。maplnfo虽然没有公开其内部的数 据结构,但它给出了用于格式交换的数据结构,即mif与mid,其中 mif文件保存图形,mid文件保存文木数据。将其它形式的地图数据 转成mif与mid格式,然后利用mapinfo菜单中的import命令就可 以导入,从而完成转换。另外,mapinfo也支持
57、标准的autocad数据 格式.dxfo应用分析在上面谈到的多种方式中,前两种方式获取数据比较精确,也十 分专业,但是均需要购买昂贵的专用设备及数字化软件包(常用的有 autocad. coreldraw等),成本太高;纯粹的手工操作费时费力,容 易出错,已无法满足现吋的需要。在世行项冃中,主要涉及到陕西省行政界线、灌区位置等地理信 息,地理数据精度要求不高,不牵涉复杂的拓扑关系及计算。开始,希望能够直接得到标准的矢量地图数据。在网上反复查找, 能够利用的只有“图行天下”网站(www.go2map.com)可供下载的栅 格数据。于是,最终采用的方法如下:(1) 、下载陕四省行政区界地图,存成栅
58、格文件;(2) 、在mapinfo中调入该文件,设置投影方式;(3) 、以配准后得到的地图为蓝本,采用手工绘制方法,自定义 新的图层并绘制和关地理对象,包括行政区划界线、灌区位置、地级 市等;配准方法与投影选择栅格图象也称为位图,由象素组成omapinfo支持bmp、gif、jpeg、 pcx、spot、targa和tiff七种栅格图象文件格式。在mapinfo中打开栅格文件时会显示一个信息框,询问是只简单 显示还是要进彳亍配准。如果选择简单显示,则map info自动生成一个 与该栅格文件同名的tab文件,并在地图窗口屮显示,此时的图层 称为栅格图层。栅格图象只用于显示栅格图层,而不能象矢量图象图 层那样附加数据,因此最适合用作矢量图象图层的背景,从而提供比 矢量图象更细致的图象。如果要同时使用栅格图象与矢量图象则必须首先进行图象配准, 这样,mapinfo才能在地图窗口屮确切地放置图象。配准过程在图象 配准对话框中进行,主要有两方面的工作,一是提供准确的控制点信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医保兼职人员劳动合同范例
- 调岗协议与劳动合同
- 企业公司装修合同标准文本
- 代理公司合作合同样本
- 劳动局备案合同样本
- 劳动合同合同样本6
- 劳务领队合同样本
- 做茶工人合同样本
- 2024年秦皇岛城市发展投资控股集团有限公司选聘笔试真题
- 2024年南通市通州区川姜镇招聘城市管理辅助人员笔试真题
- DB37-T 3274.3-2023 日光温室建造技术规范 第3部分:山东VI型
- 《四轮驱动电动汽车制动系统设计》14000字(论文)
- 郑州食品工程职业学院《中国宗教史》2023-2024学年第一学期期末试卷
- 新苏教版一年级数学下册综合实践活动1《抓抓数数》教案
- RoHS知识培训课件
- 医学课件痛风性关节炎
- 流程建设培训课件
- 公共危机管理(本)-第一次形成性考核-国开(BJ)-参考资料
- 跨境电子商务物流优化策略研究
- 统编版2024-2025学年二年级语文(上)期末情景检测试卷(含答案)
- DB31-T 782-2021 门座式起重机能源消耗指标和计算方法
评论
0/150
提交评论