实现桌面地理信息系统ArcView和VB5应用程序

打印本文 - 下载本文〗〖0条评论 - 150推荐〗〖字数:3500字〗

1.桌面地理信息系统简介

地理信息系统是一种特定的空间信息系统,它是采用现代化的方法来采集、存储、分析、管理、显示、模拟与地理空间分布有关数据的空间信息系统。它是现代地球科学、信息学、环境科学、测绘遥感学、计算机科学、管理科学、应用数学以及各种应用学科有机结合的集成产物。自60年代加拿大测量学家R.T.Tomlinson首先提出地理信息系统这一术语以来,在大型机、小型机、工作站和微机平台上,相继出现了GIS的应用平台。如美国ESRI的产品,已遍布上述四种硬件平台。由于80年代PC技术的迅速发展,以及近几年来PC硬件价格的急剧下跌和其性能日益提高,使得桌面地理信息系统(DeskTopGIS)得到了迅速的发展。其中在国内用得较多的有美国ESRI公司的ArcView。

2.ARCVIEW介绍

现在常用的ArcView2.1以上英文版是直观性较好的桌面地理信息系统。它集空间图形、关系数据库、统计图形、空间分析、网络通讯、面向对象的程序设计于一体,图形用户界面直观。而且它有自己的开发工具即Avenue,用于制作特定的ArcView应用程序。Avenue是一种WINDOWS环境下的面向对象的程序设计语言,ArcView的系统功能就是由它编程实现的。

任何一个由Avenue语言开发的Windows应用程序都有一个对应的Project,Project由一些Document和Script组成,而Document又由DocumentWindow和DocumentGUI组成,所以Avenue应用程序的模型如图1所示。图1中Document是人机交流的唯一途径,根据其功能又可分为View,Table,Chart,Layout和ScriptEditor五种,DocumentGUI是对应于某一Document的图形用户界面,由Menubar,Buttonbar和Toolbar组成,分别用来对应不同的功能。

图1Avenue应用程序模型

我们在具体开发桌面地理信息系统ArcView时,发现现有的ArcView系统功能并不能完全满足要求,必须对ArcView系统重新改造,增加新的功能。由于ArcView的开发语言是Avenue,它的开发效率低,所以在实际开发中既要充分利用ArcView自身强大的地图管理功能,又要利用高级语言(如VB5)在快速开发应用方面的长处,两者相互结合,将取得良好效果。

3.ArcView和VB5应用程序通讯方法

最通用的IPC(interprocesscommunication,IPC)方法是DDE、OLE和对动态联接库的外部函数调用、文件访问以及WINDOWS剪贴板。上述方法都能使不同的WINDOWS应用程序之间彼此通信。其中DDE方法原先是作为一种基于消息的协议在WINDOWS(3.x之前)中实现的,用来在不同的WINDOWS应用程序之间交换信息。随着WINDOWS3.0的发布,DDE在实际的应用程序开发中得到大量应用,这是通过使DDE服务能够利用应用程序编程接口(API)调用DDE管理库来完成的。ArcView是通过DDE和DLL方法实现与外部应用程序通信。本文通过一个实例来详细介绍DDE功能的使用。在实际应用中,ArcView既可作Clint,又可作Server,来实现应用程序之间的通讯,包括发送或接受数据,执行请求,返回分析结果。通过使用DDE方法,可以克服ArcView本身开发语言的落后性,达到充分发挥ArcView自身强大的地图管理功能,又创造出符合时代特色的桌面地理信息系统。实践证明,采用ArcView和VB5应用程序通讯进行系统开发是一种有效的桌面地理信息系统开发方法。

4.实例分析

在本例中,VB5应用程序向ArcView发出Avenue请求以建立新的文档如views和layouts,而且应用程序询问ArcView以得到当前激活的文档。此时VB5应用程序是目标,而ArcView是源。

如果已安装VB5和ArcView,按照下面步骤建立应用程序:

(1)启动VB5,建立缺省窗体Form1。

(2)在Form1上根据下列属性建立控件,然后放大窗体以便整齐地排列控件。

ObjectPropertySetting

TextBoxNametxtDDE

CommandButtonCaptionSendRequest

NamecmdRequest

ComboBoxNamecboDocType

(3)在Form1的说明部分增加下面代码:

ConstNONE=0,MANUAL=2

SubStartup()

Dimt

ConstDDE_NO_APP=282

#39;thiswillstartArcViewifitisn#39;trunning

OnErrorGoToFireUp

txtDDE.LinkMode=NONE#39;清除DDE链接

txtDDE.LinkTopic="ArcView|System"#39;建立对话

txtDDE.LinkMode=MANUAL#39;建立人工链接

ExitSub

FireUp:

IfErr=DDENOAPPThen

ChDir"C:\ARCVIEW2\BIN"

t=Shell("arcview",1)

t=DoEvents()

Resume

Else

MsgBox"Unknownerror."

Stop

EndIf

EndSub

(4)在FormLoad事件中增加下列代码:

SubFormLoad()

cboDocType.text=""

cboDocType.AddItem"View"

cboDocType.AddItem"Layout"

cboDocType.AddItem"SEd"

Startup#39;调startup程序

EndSub

(5)在FormUnload事件中增加下列代码:

SubFormUnload(CancelAsInteger)

txtDDE.LinkMode=NONE#39;关闭DDE对话

EndSub

(6)在cboDocTypeClick事件中增加下列代码:

SubcboDocTypeClick()

cmd="av.GetProject.AddDoc("&cboDocType&".make)av.GetProject.GetActive.Get(0).GetWin.Open"

txtDDE.LinkExecutecmd

EndSub

(7)在cmdRequestClick事件中增加下列代码:

SubcmdRequestClick()

#39;LinkItem是能够返回值的Avenuescript

txtDDE.LinkItem="av.GetActiveDoc.GetName"

txtDDE.LinkRequest

EndSub

(8)存储VB5工程并编译成EXE文件。

现在即可运行VisualBasic应用程序。如果ArcView没有运行,应用程序就会激活它。从dropdowncombobox选择一个文档名以便在ArcView中建立一个文档。要访问当前激活的文档就敲击SendRequestbutton,在文本框里将会显示文档名。本例所有的DDE通讯都是通过文本框实现的。在VB5中,任何textbox,picturebox和label在对话中都可作为目标,同时任何窗体可看作源。

以上实例的运行环境为:VisualBasic4.0以上,ArcView2.1以上,Windows3.1以上。

版权声明: 请尊重本站原创内容,如需转载本范文,请注明原文出处:中国范文模板网
原文地址:http://www.fanwenmuban.com/lw/jsjyy/220166.html

    按字数查找计算机应用研究

    相关评论

    评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)