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