- 相關推薦
實現桌面地理信息系統ArcView和VB5應用程序之間的通訊
沈業龍 潘丹 謝慶勝 張來平?
(安徽省地理信息中心)??
摘要 本文簡要介紹桌面地理信息系統的概念,通過分析 桌面地理信息系統ArcView和VB5應用程序之間的通訊關系,結合實例,論述了ArcView 和VB 5相互通訊在開發桌面地理信息系統中的應用價值。?
關鍵詞 桌面地理信息系統、ArcView和VB5、應用程序通訊??
1. 桌面地理信息系統簡介?
地理信息系統是一種特定的空間信息系統,它是采用現代化的方法來采集、存儲、分 析、管理、顯示、模擬與地理空間分布有關數據的空間信息系統。它是現代地球科學、信息 學、環境科學、測繪遙感學、計算機科學、管理科學、應用數學以及各種應用學科有機結合 的集成產物。自60年代加拿大測量學家R.T.Tomlinson 首先提出地理信息系統這一術語以來 ,在大型機、小型機、工作站和微機平臺上,相繼出現了GIS的應用平臺。如美國ESRI的產 品,已遍布上述四種硬件平臺。由于80年代PC技術的迅速發展,以及近幾年來PC硬件價格的 急劇下跌和其性能日益提高,使得桌面地理信息系統(DeskTop GIS)得到了迅速的發展。 其中在國內用得較多的有美國ESRI公司的ArcView。?
2. ARCVIEW介紹?
現在常用的ArcView2.1以上英文版是直觀性較好的桌面地理信息系統。它集空間圖形、關系 數據庫、統計圖形、空間分析、網絡通訊、面向對象的程序設計于一體,圖形用戶界面直觀 。而且它有自己的開發工具即Avenue,用于制作特定的ArcView 應用程序。Avenue是一種WI NDOWS環境下的面向對象的程序設計語言,ArcView 的系統功能就是由它編程實現的。?
任何一個由Avenue語言開發的Windows應用程序都有一個對應的Project,Project由一些Doc ument和Script組成,而Document又由Document Window 和Document GUI 組成,所以Avenue 應用程序的模型如圖1所示。圖1中Document是人機交流的唯一途徑,根據其功能又可分為 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 自身 強大的地圖管理功能,又要利用高級語言(如VB5)在快速開發應用方面的長處,兩者相互 結合,將取得良好效果。
3. ArcView和VB5應用程序通訊方法?
最通用的IPC(interprocess communication,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上根據下列屬性建立控件,然后放大窗體以便整齊地排列控件。?
ObjectProperty Setting?
Text BoxNametxtDDE?
Command ButtonCaptionSend Request?
NamecmdRequest?
Combo BoxNamecboDocType?
(3) 在Form1的說明部分增加下面代碼:?
Const NONE=0, MANUAL=2?
Sub Startup()?
Dim t?
Const DDE_NO_APP=282?
'this will start ArcView if it isn't running?
On Error GoTo FireUp?
txtDDE.LinkMode=NONE'清除D
【實現桌面地理信息系統ArcView和VB5應用程序之間的通訊】相關文章:
VC++實現串口通信的應用程序設計03-07
《地理信息系統原理及應用》多媒體教學軟件設計和實現03-01
用Borland C 3.1實現外設與Windows應用程序實時通信03-21
地理信息系統中路徑分析的研究與實現11-22
用Visual Basic 5.0開發無線通訊數據采集應用程序03-20
新聞發布系統的設計和實現03-07
利用VB實現PC機與多單片機通訊03-18
旅游云講解系統的設計和實現12-04