1、实现桌面地理信息系统 ArcView 和 VB5应用程序之间的通讯摘要 本文简要介绍桌面地理信息系统的概念,通过分析 桌面地理信息系统 ArcView 和 VB5 应用程序之间的通讯关系,结合实例,论述了 ArcView 和 VB 5 相互通讯在开发桌面地理信息系统中的应用价值。 关键词 桌面地理信息系统、ArcView 和 VB5、应用程序通讯1. 桌面地理信息系统简介 地理信息系统是一种特定的空间信息系统,它是采用现代化的方法来采集、存储、分 析、管理、显示、模拟与地理空间分布有关数据的空间信息系统。它是现代地球科学、信息 学、环境科学、测绘遥感学、计算机科学、管理科学、应用数学以及各种应
2、用学科有机结合 的集成产物。自 60 年代加拿大测量学家 首先提出地理信息系统这一术语以来 ,在大型机、小型机、工作站和微机平台上,相继出现了 GIS 的应用平台。如美国 ESRI 的产 品,已遍布上述四种硬件平台。由于 80 年代 PC 技术的迅速发展,以及近几年来 PC 硬件价格的 急剧下跌和其性能日益提高,使得桌面地理信息系统(DeskTop GIS)得到了迅速的发展。其中在国内用得较多的有美国 ESRI 公司的 ArcView。2. ARCVIEW 介绍 现在常用的以上英文版是直观性较好的桌面地理信息系统。它集空间图形、关系 数据库、统计图形、空间分析、网络通讯、面向对象的程序设计于一
3、体,图形用户界面直观 。而且它有自己的开发工具即 Avenue,用于制作特定的 ArcView 应用程序。Avenue 是一种 WI NDOWS环境下的面向对象的程序设计语言,ArcView 的系统功能就是由它编程实现的。 任何一个由 Avenue 语言开发的Windows 应用程序都有一个对应的 Project,Project 由一些 Doc ument 和 Script 组成,而 Document 又由 Document Window 和 Document GUI 组成,所以 Avenue 应用程序的模型如图 1 所示。图 1 中 Document 是人机交流的唯一途径,根据其功能又可分为
4、 V iew, Table, Chart, Layout 和 Script Editor 五种,Document GUI 是对应于某一Document 的图形用户界面,由 Menu bar,Button bar 和Tool bar 组成,分别用来对应不同的功能。图 1Avenue 应用程序模型 我们在具体开发桌面地理信息系统 ArcView 时,发现现有的 ArcVie w 系统功能并不能完全满足要求,必须对 ArcView 系统重新改造,增加新的功能。由于 ArcV iew 的开发语言是 Avenue,它的开发效率低,所以在实际开发中既要充分利用 ArcView 自身 强大的地图管理功能,又
5、要利用高级语言(如 VB5)在快速开发应用方面的长处,两者相互 结合,将取得良好效果。3. ArcView 和 VB5 应用程序通讯方法 最通用的 IPC(interprocess communication,IPC)方法是 DDE、OLE 和对动态联接库的外部 函数调用、文件访问以及 WINDOWS 剪贴板。上述方法都能使不同的 WINDOWS 应用程序之间彼此 通信。其中 DDE方法原先是作为一种基于消息的协议在 WINDOWS(之前)中实现的,用来在 不同的 WINDOWS 应用程序之间交换信息。随着的发布,DDE 在实际的应用程序开发 中得到大量应用,这是通过使 DDE 服务能够利用应
6、用程序编程接口(API)调用 DDE 管理库来 完成的。ArcView 是通过 DDE 和 DLL 方法实现与外部应用程序通信。本文通过一个实例来详细 介绍DDE 功能的使用。在实际应用中,ArcView 既可作 Clint,又可作 Server,来实现应用程 序之间的通讯,包括发送或接受数据,执行请求,返回分析结果。通过使用 DDE 方法,可以 克服 ArcView 本身开发语言的落后性,达到充分发挥ArcView 自身强大的地图管理功能,又创 造出符合时代特色的桌面地理信息系统。实践证明,采用 ArcView 和 VB5应用程序通讯进行系 统开发是一种有效的桌面地理信息系统开发方法。4.
7、实例分析 在本例中,VB5 应用程序向ArcView 发出 Avenue 请求以建立新的文档如 views 和layouts, 而且应用程序询问 ArcView 以得到当前激活的文档。此时 VB5 应用程序是目标,而 ArcView 是源。 如果已安装 VB5 和 ArcView,按照下面步骤建立应用程序:(1) 启动 VB5,建立缺省窗体 Form1。(2) 在 Form1 上根据下列属性建立控件,然后放大窗体以便整齐地排列控件。ObjectProperty SettingText BoxNametxtDDECommand ButtonCaptionSend RequestNamecmdRe
8、questCombo BoxNamecboDocType(3) 在 Form1 的说明部分增加下面代码:Const NONE=0, MANUAL=2Sub Startup()Dim tConst DDE_NO_APP=282this will start ArcView if it isnt runningOn Error GoTo FireUp=NONE 清除 DDE 链接=“ArcView|System“ 建立对话=MANUAL 建立人工链接Exit SubFireUp:If Err=DDENOAPP ThenChDir “C:ARCVIEW2BIN“t=Shell(“arcview“,1
9、)t=DoEvents()ResumeElseMsgBox “Unknown error.“StopEnd IfEnd Sub(4) 在 FormLoad 事件中增加下列代码:Sub FormLoad()=“ “View“ “Layout“ “SEd“Startup调 startup 程序End Sub(5) 在 FormUnload 事件中增加下列代码:Sub FormUnload (Cancel As Integer) = NONE关闭 DDE 对话End Sub(6) 在 cboDocTypeClick 事件中增加下列代码:Sub cboDocTypeClick()cmd=“(“&cbo
10、DocType&“.make) (0).Ge “ cmdEnd Sub(7) 在 cmdRequestClick 事件中增加下列代码:Sub cmdRequestClick ()LinkItem是能够返回值的 Avenue script = “End Sub(8) 存储 VB5 工程并编译成 EXE 文件。 现在即可运行 Visual Basic 应用程序。如果 ArcView 没有运行,应用程序就 会激活它。从 dropdown combo box 选择一个文档名以便在ArcView 中建立一个文档。要访问 当前激活的文档就敲击Send Request button,在文本框里将会显示文档名
11、。本例所有的 DDE 通讯都是通过文本框实现的。在 VB5 中, 任何text box, picture box 和 label 在对话中都可 作为目标,同时任何窗体可看作源。 以上实例的运行环境为:Visual Basic 以上,以上,以上。 参考文献 1、边馥苓主编, 地理信息系统原理和方法 ,北京:测绘出版社,1996 年 8 月。2、郭达志、盛业华等编著, 地理信息系统基础与应用 ,煤炭工业出版社,1997 年 5 月。3 、(美国) Mike McKelvy & Ronald Martinsen 著, Visual Basic 5 开发使用手 册 ,机械工业出版社,1998 年 4 月。