文秘知識 > 畢業設計

實現桌面地理信息系統ArcView和VB5應用程式之間的通訊


 摘要 本文簡要介紹桌面地理信息系統的概念,通過分析 桌面地理信息系統ArcView和VB5應用程式之間的通訊關係,結合實例,論述了ArcView 和VB 5相互通訊在開發桌面地理信息系統中的套用價值。?關鍵字 桌面地理信息系統、ArcView和VB5、應用程式通訊??1. 桌面地理信息系統簡介?地理信息系統是一種特定的空間信息系統,它是採用現代化的方法來採集、存儲、分 析、管理、顯示、模擬與地理空間分布有關數據的空間信息系統。它是現代地球科學、信息 學、環境科學、測繪遙感學、計算機科學、管理科學、套用數學以及各種套用學科有機結合 的集成產物。自60年代加拿大測量學家R.T.Tomlinson 首先提出地理信息系統這一術語以來 ,在大型機、小型機、工作站和微機平台上,相繼出現了GIS的套用平台。如美國ESRI的產 品,已遍布上述四種硬體平台。由於80年代PC技術的迅速發展,以及近幾年來PC硬體價格的 急劇下跌和其性能日益提高,使得桌面地理信息系統得到了迅速的發展。 其中在國內用得較多的有美國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 自身 強大的地圖管理功能,又要利用高級語言在快速開發套用方面的長處,兩者相互 結合,將取得良好效果。3. ArcView和VB5應用程式通訊方法?最通用的IPC方法是DDE、OLE和對動態聯接庫的外部 函式調用、檔案訪問以及WINDOWS剪貼簿。上述方法都能使不同的WINDOWS應用程式之間彼此 通信。其中DDE方法原先是作為一種基於訊息的協定在WINDOWS中實現的,用來在 不同的WINDOWS應用程式之間交換信息。隨著WINDOWS3.0的發布,DDE在實際的應用程式開發 中得到大量套用,這是通過使DDE服務能夠利用應用程式編程接口調用DDE管理庫來 完成的。ArcView是通過DDE和DLL方法實現與外部應用程式通信。本文通過一個實例來詳細 介紹DDE功能的使用。在實際套用中,ArcView既可作Clint,又可作Server,來實現套用程 序之間的通訊,包括傳送或接受數據,執行請求,返回分析結果。通過使用DDE方法,可以 克服ArcView本身開發語言的落後性,達到充分發揮ArcView自身強大的地圖管理功能,又創 造出符合時代特色的桌面地理信息系統。實踐證明,採用ArcView和VB5應用程式通訊進行系 統開發是一種有效的桌面地理信息系統開發方法。4. 實例分析?在本例中,VB5 應用程式向ArcView 發出Avenue 請求以建立新的文檔如views 和layouts, 而且應用程式詢問ArcView 以得到當前激活的文檔。此時VB5 應用程式是目標,而ArcView 是源。?如果已安裝VB5 和ArcView,按照下面步驟建立應用程式:? 啟動VB5,建立預設窗體Form1。? 在Form1上根據下列屬性建立控制項,然後放大窗體以便整齊地排列控制項。?ObjectProperty Setting?Text BoxNametxtDDE?Command ButtonCaptionSend Request?NamecmdRequest?Combo BoxNamecboDocType? 在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'清除DDE連結?txtDDE.LinkTopic="ArcView|System"'建立對話?txtDDE.LinkMode=MANUAL'建立人工連結?Exit Sub?FireUp:?If Err=DDENOAPP Then?ChDir "C:\ARCVIEW2\BIN"?t=Shell?t=DoEvents?Resume?Else?MsgBox "Unknown error."?Stop?End If?End Sub? 在FormLoad 事件中增加下列代碼:?Sub FormLoad?cboDocType.text=""?cboDocType.AddItem "View"?cboDocType.AddItem "Layout"?cboDocType.AddItem "SEd"Startup'調startup 程式?End Sub? 在FormUnload 事件中增加下列代碼:?Sub FormUnload ?txtDDE.LinkMode = NONE'關閉DDE 對話?End Sub? 在cboDocTypeClick事件中增加下列代碼:?Sub cboDocTypeClick?cmd="av.GetProject.AddDoc av.GetProject.GetActive.Get.Ge tWin.Open"?txtDDE.LinkExecute cmd?End Sub? 在cmdRequestClick事件中增加下列代碼:?Sub cmdRequestClick ?'LinkItem是能夠返回值的Avenue script?txtDDE.LinkItem = "av.GetActiveDoc.GetName"?txtDDE.LinkRequest?End Sub? 存儲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月。

推薦文章

熱門文章

實現桌面地理信息系統ArcView和VB5應用程式之間的通訊@名言佳句大全