[ 應地首頁 / 地科教室 / 資料查詢 / 研究專欄 / 地理資訊 / 地震防災 / 坡地防災 / 時事評論 / 工程地質首頁 ]
地理資訊系統(以下簡稱 GIS)在各個領域上的應用已經逐漸普遍。 但在發展即時性處裡系統、資料自動更新、使用外部程式、使用外部資料庫管理系統(以下簡稱 DBMS)等方面仍有一些困難存在。這一些困難的存在主要係由於某些電腦作業系統與 GIS本身的程式發展系統無法提供不同程式間相互溝通的能力,以致造成程式發展的工作變得十分複雜。
動態資料交換(以下簡稱 DDE)是架構於Windows的訊息系統下,使得不同程式間可相互傳遞訊息的一項基本功能。若能善用DDE技術,則一個複雜而龐大的工作可由不同功能而分別 獨立的許多較小程式合力完成,將整個系統的功能更加提昇。
本研究以Visual Basic程式語言發展能與MapInfo相互溝通的應用程式,也就是我們在GIS中建立新功能與更強的DBMS能力。目前我們使用FoxPro作為 MapInfo的屬性資料庫,經測試效果良好。這些程式不僅可供MapInfo使用也能獨立執行,甚至可供任何具有 DDE功能的程式叫用。
Geographic information system GIS has been widely applied to many fields. However, there still are some difficulties existing in the development of a real time system, automatic data updating, and the use of external program and external database management system [DBMS]. These difficulties mainly result from the programming system of GIS can not communicate with the operation system and can not provide communication among different programs, so that the development of a GIS application program become very complicated.
Running under the message system of the Windows, Dynamic Data Exchange [DDE] makes different programs convey information mutually. If DDE technology has been made better use, a huge and complicate job can be completed by several smaller programs which can communicate each other. Thus, it will enhance further the functions of the whole system.
This study uses Visual Basic language to develop application programs which can communicate with Mapinfo system. Thus, we may integrate new functions and DBMS ability into the GIS. Presently, we use FoxPro database system as DBMS for the Mapinfo. Our test results are excellent. These programs can be executed not only in Mapinfo but also independently. These programs can also communicate with any other programs which provide DDE function.
地理資訊系統主要是由資料庫系統、繪圖系統、程式發展系統及分析模組與處理空間資料的能力等部份構成。除了後三者外,一般來說其功能不如類似的專業軟體,以多媒體的資料而言如動畫、聲音等就不是傳統GIS資料庫所能處理的;若以GIS發展導航系統即時接收全球定位系統的資料,則必須多寫一個通訊程式;若需電子試算表的功能則須以Excel來處理,但是只要GIS有支援動態資料交換的能力,就能方便拓展其欠缺之功能。
DDE是一種屬於訊息導向的內部程序通訊,並且架構在Windows的訊息系統來完成應用程式間的資料交換。一個應用程式可以藉著訊息的傳送來傳遞資料到其他的應用程式,甚至可以用訊息來下達遙控的命令來指揮其他的應用程式。DDE最常被用來傳送那些不須使用者參予的資料,使用者只需設立好應用程式彼此間的聯繫管道,應用程式就會接管資料傳遞的手續。DDE的應用程式可分為四類,也就是客戶(Client)、服務者(Server)、客戶與服務者、監視者(Monitor),為了達到資料交換,兩個程式必須進行交談,客戶端的應用程式會向服務者應用程式要求資料或服務,而服務者則回應客戶端的需求,提供資料或服務給客戶端應用程式,同時兼具兩者角色者為客戶與服務者。DDE另一項最重要的特點是當服務者程式察覺資料有異動時,就發出訊息給客戶端,並自動將新的資料傳給客戶端。
在以MapInfo建置地質圖資料庫時,發現其DBMS無法儲存多媒體的資料,與分析模組中統計分析的功能較少,不符合我們需求,因此將地質圖的屬性資料庫改由功能較強的FoxPro代替,而用Visual Basic撰寫資料庫程式負責屬性資料的查詢、編輯及透過DDE的方式將地質圖屬性資料傳遞給MapInfo,並可對MapInfo下命令以調閱想要的地質圖。另以MapInfo的程式發展語言MapBasic撰寫主選單程式,負責地質圖的展示、編修及透過DDE的方式下指令給資料庫程式,以查詢屬性資料。這兩部份程式皆同時具備客戶與服務者角色,因此可以相互傳遞資訊,所以其屬性資料庫成功的由FoxPro取代。
在撰寫DDE通訊程式時首先須決定何者扮演服務者何者擔任客戶,再指定雙方程式交談的通道(Channel)、雙方程式的名稱、溝通的話題(Topic)及欲傳遞資料的連接項目(Item), 設定好雙方的DDE模式後即完成。
動態資料交換技術在應用上,以即時性系統最能發揮其特長。例如在野外做地質調查時可透過無線電或網路將資料傳回,而接收端在的電腦上,其通訊程式即可用DDE的方式自動將資料傳遞給資料庫、分析統計系統或GIS上,即時得到結果,以利研判。另外在水文、邊坡、隧道等各種監測儀器連結至電腦的分析統計系統的部份,也常採用DDE,發揮即時處理的功能。
近年來使用GIS的情況日漸普及。因為單一GIS已無法滿足各領域使用者之需求,故聯合其他系統共同分工,實為一種必然的趨勢。含有動態資料交換功能的作業系統目前僅有Microsoft 的Windows、Windows 95、Windows NT及IBM OS/2等,而具備DDE功能的GIS更少。由於個人電腦的速度不斷加快與作業系統的改良,相信未來GIS廠商都會轉移到PC上,屆時除了會含有DDE功能外,還會增加物件連結與嵌入的功能。
圖一、以Visual Basic開發的資料庫程式,將中央地質調查所出版的五萬分之一地質圖的屬性及圖幅說明以FoxPro的格式建成資料庫,除了可供查詢、編輯外更可以DDE的方式將屬性送給MapInfo,並令其自動開啟圖檔。
圖二、以MapBasic開發程式以接收資料庫程式傳遞來的指令及欲查閱之地質圖,並令MapInfo開啟欲查之地質圖檔。本例接收到資料庫程式傳來開啟中壢圖幅指令後之反應。
圖三、以Visual Basic開發的地層資料庫,它記錄了相關地層的詳細資料,當在MapInfo的地質圖發出查閱某地層資料時,即自動開啟其資料。本例為接收到MapInfo發出開啟〝店子湖層〞命令後之反應。
歡迎來信指教 | [系所簡介] [應地首頁] | 維護: 廖啟雯 |