地理信息系統(tǒng)的嵌入式開發(fā)技術(shù)
發(fā)布時(shí)間:2007/8/29 0:00:00 訪問次數(shù):465
摘要:以MapInfo系統(tǒng)和VB5.0為例系統(tǒng)地介紹了使用嵌入式技術(shù)開發(fā)地理信息系統(tǒng)(GIS)應(yīng)用軟件的方法。
關(guān)鍵詞:地理信息系統(tǒng)
OLE自動(dòng)化 回應(yīng)方法 動(dòng)態(tài)數(shù)據(jù)交換
地理信息系統(tǒng)(GIS)是近年來興起的一門新興技術(shù),由于它能夠直觀有效地利用和表達(dá)地理信息數(shù)據(jù),滿足了信息綜合管理和數(shù)據(jù)服務(wù)可視化的需要,因此在地質(zhì)勘測、城市規(guī)劃、交通管理、遙控遙測等許多領(lǐng)域獲得了普遍應(yīng)用。目前國內(nèi)流行的基礎(chǔ)GIS軟件主要有MapInfo、ARC/INFO、MGE等幾種。為支持應(yīng)用系統(tǒng)的開發(fā),多數(shù)通用GIS系統(tǒng)都提供了專用的開發(fā)工具和編程語言,但與通用的編程工具如VisvalC++,Visual Basic等相比,春功能十分有限且不夠錄靈活。如果在設(shè)計(jì)應(yīng)用GIS系統(tǒng)時(shí)采用嵌入式技術(shù),則既能夠發(fā)揮通用編輯工具的強(qiáng)大程序開發(fā)能力,又能充分利用現(xiàn)有GIS系統(tǒng)的豐富功能,從而給開發(fā)工作帶來極大的方便。
1 嵌入式開發(fā)技術(shù)簡介
所謂嵌入式開發(fā)技術(shù)是指以在應(yīng)用程序中嵌入由其他程序所提供的數(shù)據(jù)或?qū)ο蟮姆绞絹慝@得特定功能的程序設(shè)計(jì)方法。由于這種嵌入是通過窗口嵌套技術(shù)和程序進(jìn)程間的數(shù)據(jù)通信技術(shù)來實(shí)現(xiàn)的,可以使兩個(gè)不同的程序完全“無縫”地集成到一起,因此所開發(fā)出的應(yīng)用程序與普通程序看起來并沒有什么區(qū)別。使用嵌入式技術(shù)的GIS應(yīng)用程序與為其提供支持的GIS系統(tǒng)之間是一種并行的同時(shí)運(yùn)行的關(guān)系,在功能上不受任何限制,可以象正常程序一樣使用操作系統(tǒng)所提供的一切資源。絕大多數(shù)的GIS系統(tǒng)和通用編程工具都對(duì)嵌入式開發(fā)提供支持。本文將以目前流行的MapInfo地理信息系統(tǒng)和Visual Basic 5.0程序設(shè)計(jì)語言為例,系統(tǒng)地介紹利用嵌入式技術(shù)開發(fā)GIS應(yīng)用軟件的方法。
MapInfo是一個(gè)功能強(qiáng)大的通用地理信息和空間數(shù)據(jù)管理系統(tǒng),能提供豐富的地理信息數(shù)據(jù)編輯轉(zhuǎn)換、分析處理、瀏覽顯示、查詢檢索等功能,是目前應(yīng)用最為廣泛的GIS基礎(chǔ)平臺(tái)之一。為了支持二次開發(fā),MapInfo提供了簡單易用的MapBasic語言,并在4.0以后的版本中全面支持嵌入式技術(shù)。在應(yīng)用程序中嵌入MapInfo系統(tǒng)所使用的主要方法有OLE自動(dòng)化、回應(yīng)廣泛和動(dòng)態(tài)數(shù)據(jù)交換三種。下面分別對(duì)這些方法作進(jìn)一步的介紹。
2 OLE自動(dòng)化技術(shù)
OLE自動(dòng)化技術(shù)是在微軟公司的對(duì)象鏈接和嵌入(OLE)技術(shù)和組件對(duì)象模型技術(shù)(COM)基礎(chǔ)上發(fā)展起來的一種程序設(shè)計(jì)標(biāo)準(zhǔn),它允許一個(gè)程序模塊控制其他程序模塊的執(zhí)行。換句話說,支持自動(dòng)化的程序模塊的行為是可以通過編程來控制的,這種控制通過應(yīng)用程序?qū)ψ詣?dòng)化支持程序所提供的對(duì)象的訪問來完成。OLE自動(dòng)化實(shí)質(zhì)上是兩個(gè)不同的應(yīng)用程序之間以客房機(jī)/服務(wù)器方式進(jìn)行的動(dòng)態(tài)信息交換過程,作為服務(wù)器一方的應(yīng)用程序提供一組具有特定方法和屬性的對(duì)象模型,客房程序則使用標(biāo)準(zhǔn)的通信接口對(duì)其進(jìn)行訪問和控制。MapInfo所提供的OLE自動(dòng)化對(duì)象模型如圖1所示。
從圖1可以看出,MapInfo提供的OLE自動(dòng)化對(duì)象體系具有很明顯的層次結(jié)構(gòu)。最高層是Application對(duì)象即MapInfo系統(tǒng)本身的運(yùn)行實(shí)例,其下是MapBasic應(yīng)用程序?qū)ο蠹螹BApplications及其公共變量對(duì)象集合MBGlobals。所有的對(duì)象和對(duì)象集合都有相應(yīng)的方法和屬性,應(yīng)用程序可以調(diào)用這些方法和屬性來實(shí)現(xiàn)特定的功能。以VB5.0為例,要想在程序中嵌入MapInfo對(duì)象,首先要聲明一個(gè)ActiveX對(duì)象變量并用其創(chuàng)建MapInfo運(yùn)行實(shí)例,方法如下:
Public MapInfo As Object
Set MapInfo=CreateObject('MapInfo.Application')
上述代碼將使MapInfo系統(tǒng)啟動(dòng)并自動(dòng)在后臺(tái)運(yùn)行。與獨(dú)立運(yùn)行時(shí)相比,作為自動(dòng)化對(duì)象的MapInfo系統(tǒng)沒有自己的啟動(dòng)窗體和用戶界面(菜單、工具條等),其行為完全由調(diào)用它的應(yīng)用程序控制。通過訪問Application
摘要:以MapInfo系統(tǒng)和VB5.0為例系統(tǒng)地介紹了使用嵌入式技術(shù)開發(fā)地理信息系統(tǒng)(GIS)應(yīng)用軟件的方法。
關(guān)鍵詞:地理信息系統(tǒng)
OLE自動(dòng)化 回應(yīng)方法 動(dòng)態(tài)數(shù)據(jù)交換
地理信息系統(tǒng)(GIS)是近年來興起的一門新興技術(shù),由于它能夠直觀有效地利用和表達(dá)地理信息數(shù)據(jù),滿足了信息綜合管理和數(shù)據(jù)服務(wù)可視化的需要,因此在地質(zhì)勘測、城市規(guī)劃、交通管理、遙控遙測等許多領(lǐng)域獲得了普遍應(yīng)用。目前國內(nèi)流行的基礎(chǔ)GIS軟件主要有MapInfo、ARC/INFO、MGE等幾種。為支持應(yīng)用系統(tǒng)的開發(fā),多數(shù)通用GIS系統(tǒng)都提供了專用的開發(fā)工具和編程語言,但與通用的編程工具如VisvalC++,Visual Basic等相比,春功能十分有限且不夠錄靈活。如果在設(shè)計(jì)應(yīng)用GIS系統(tǒng)時(shí)采用嵌入式技術(shù),則既能夠發(fā)揮通用編輯工具的強(qiáng)大程序開發(fā)能力,又能充分利用現(xiàn)有GIS系統(tǒng)的豐富功能,從而給開發(fā)工作帶來極大的方便。
1 嵌入式開發(fā)技術(shù)簡介
所謂嵌入式開發(fā)技術(shù)是指以在應(yīng)用程序中嵌入由其他程序所提供的數(shù)據(jù)或?qū)ο蟮姆绞絹慝@得特定功能的程序設(shè)計(jì)方法。由于這種嵌入是通過窗口嵌套技術(shù)和程序進(jìn)程間的數(shù)據(jù)通信技術(shù)來實(shí)現(xiàn)的,可以使兩個(gè)不同的程序完全“無縫”地集成到一起,因此所開發(fā)出的應(yīng)用程序與普通程序看起來并沒有什么區(qū)別。使用嵌入式技術(shù)的GIS應(yīng)用程序與為其提供支持的GIS系統(tǒng)之間是一種并行的同時(shí)運(yùn)行的關(guān)系,在功能上不受任何限制,可以象正常程序一樣使用操作系統(tǒng)所提供的一切資源。絕大多數(shù)的GIS系統(tǒng)和通用編程工具都對(duì)嵌入式開發(fā)提供支持。本文將以目前流行的MapInfo地理信息系統(tǒng)和Visual Basic 5.0程序設(shè)計(jì)語言為例,系統(tǒng)地介紹利用嵌入式技術(shù)開發(fā)GIS應(yīng)用軟件的方法。
MapInfo是一個(gè)功能強(qiáng)大的通用地理信息和空間數(shù)據(jù)管理系統(tǒng),能提供豐富的地理信息數(shù)據(jù)編輯轉(zhuǎn)換、分析處理、瀏覽顯示、查詢檢索等功能,是目前應(yīng)用最為廣泛的GIS基礎(chǔ)平臺(tái)之一。為了支持二次開發(fā),MapInfo提供了簡單易用的MapBasic語言,并在4.0以后的版本中全面支持嵌入式技術(shù)。在應(yīng)用程序中嵌入MapInfo系統(tǒng)所使用的主要方法有OLE自動(dòng)化、回應(yīng)廣泛和動(dòng)態(tài)數(shù)據(jù)交換三種。下面分別對(duì)這些方法作進(jìn)一步的介紹。
2 OLE自動(dòng)化技術(shù)
OLE自動(dòng)化技術(shù)是在微軟公司的對(duì)象鏈接和嵌入(OLE)技術(shù)和組件對(duì)象模型技術(shù)(COM)基礎(chǔ)上發(fā)展起來的一種程序設(shè)計(jì)標(biāo)準(zhǔn),它允許一個(gè)程序模塊控制其他程序模塊的執(zhí)行。換句話說,支持自動(dòng)化的程序模塊的行為是可以通過編程來控制的,這種控制通過應(yīng)用程序?qū)ψ詣?dòng)化支持程序所提供的對(duì)象的訪問來完成。OLE自動(dòng)化實(shí)質(zhì)上是兩個(gè)不同的應(yīng)用程序之間以客房機(jī)/服務(wù)器方式進(jìn)行的動(dòng)態(tài)信息交換過程,作為服務(wù)器一方的應(yīng)用程序提供一組具有特定方法和屬性的對(duì)象模型,客房程序則使用標(biāo)準(zhǔn)的通信接口對(duì)其進(jìn)行訪問和控制。MapInfo所提供的OLE自動(dòng)化對(duì)象模型如圖1所示。
從圖1可以看出,MapInfo提供的OLE自動(dòng)化對(duì)象體系具有很明顯的層次結(jié)構(gòu)。最高層是Application對(duì)象即MapInfo系統(tǒng)本身的運(yùn)行實(shí)例,其下是MapBasic應(yīng)用程序?qū)ο蠹螹BApplications及其公共變量對(duì)象集合MBGlobals。所有的對(duì)象和對(duì)象集合都有相應(yīng)的方法和屬性,應(yīng)用程序可以調(diào)用這些方法和屬性來實(shí)現(xiàn)特定的功能。以VB5.0為例,要想在程序中嵌入MapInfo對(duì)象,首先要聲明一個(gè)ActiveX對(duì)象變量并用其創(chuàng)建MapInfo運(yùn)行實(shí)例,方法如下:
Public MapInfo As Object
Set MapInfo=CreateObject('MapInfo.Application')
上述代碼將使MapInfo系統(tǒng)啟動(dòng)并自動(dòng)在后臺(tái)運(yùn)行。與獨(dú)立運(yùn)行時(shí)相比,作為自動(dòng)化對(duì)象的MapInfo系統(tǒng)沒有自己的啟動(dòng)窗體和用戶界面(菜單、工具條等),其行為完全由調(diào)用它的應(yīng)用程序控制。通過訪問Application
熱門點(diǎn)擊
- ZETEX公司新型三極管、場效應(yīng)管對(duì)陣列
- DSP器件為核心的嵌入式系統(tǒng)技術(shù)
- 利用DC/DC轉(zhuǎn)換器消除高頻瞬態(tài)干擾(圖)
- 從并行到串行背板的設(shè)計(jì)
- USB接口芯片CH375的原理及應(yīng)用(圖)
- 美國泛達(dá)MAS-CON接插件系列
- 雙電層電容器及其應(yīng)用.
- 地理信息系統(tǒng)的嵌入式開發(fā)技術(shù)
推薦技術(shù)資料
- 羅盤誤差及補(bǔ)償
- 造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究