- 相關(guān)推薦
PowerBuilder和MapInfo的集成開(kāi)發(fā)技術(shù)
PowerBuilder和MapInfo的集成開(kāi)發(fā)技術(shù)
摘要: 本文介紹了客戶(hù)/服務(wù)器開(kāi)發(fā)工具PowerBuilder和桌面地圖信息系統(tǒng)MapInfo集成開(kāi)發(fā)的基本方法。重點(diǎn)討論了集成開(kāi)發(fā)中的一些關(guān)鍵技術(shù)的實(shí)現(xiàn)方法。
關(guān)鍵詞:PowerBuilder,MapInfo,MapBasic,系統(tǒng)集成,OLE自動(dòng)化,回調(diào)
0 引言
PowerBuilder 是一個(gè)面向?qū)ο蟮挠糜跇?gòu)造基于客戶(hù)/服務(wù)器(Client/Server)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具,它通過(guò)ODBC可同時(shí)支持Sysbase、Oracle、Informix、SQL Server等多種關(guān)系數(shù)據(jù)庫(kù),具有強(qiáng)大的數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)功能,尤其是它提供的如數(shù)據(jù)窗口(Data Window)等工具,使其能夠更加方便有效地訪問(wèn)與操縱數(shù)據(jù)庫(kù)。
MapInfo是由美國(guó)MapInfo公司推出的地理信息系統(tǒng)開(kāi)發(fā)平臺(tái),其核心包括MapInfo Professional和MapBasic兩個(gè)部件。通過(guò)MapInfo平臺(tái),能把大量信息直觀地與地理圖形有機(jī)聯(lián)系起來(lái),使枯燥的表格數(shù)據(jù)可視化,從而極大地方便了數(shù)據(jù)分析和輔助決策。
利用PowerBuilder強(qiáng)大的數(shù)據(jù)訪問(wèn)與操縱能力和MapInfo的地圖信息管理功能,結(jié)合Integrated Mapping技術(shù)、OLE自動(dòng)化技術(shù)等,將MapInfo地圖集成到PowerBuilder的應(yīng)用中,可以迅速地開(kāi)發(fā)出具有強(qiáng)大地圖處理能力的應(yīng)用程序,使數(shù)據(jù)庫(kù)中繁雜抽象的數(shù)據(jù)快速、準(zhǔn)確、靈活地顯示于電子地圖之上,將數(shù)據(jù)可視化,實(shí)現(xiàn)空間數(shù)據(jù)和屬性數(shù)據(jù)的有機(jī)結(jié)合。
1 開(kāi)發(fā)框架
使用PowerBuilder和MapInfo集成開(kāi)發(fā)技術(shù)所開(kāi)發(fā)的應(yīng)用程序,稱(chēng)為集成的地圖應(yīng)用程序(Integrated Mapping Application)。在集成的地圖應(yīng)用程序中,以客戶(hù)/服務(wù)器的開(kāi)發(fā)模式,使用PowerBuilder開(kāi)發(fā)的應(yīng)用程序稱(chēng)為客戶(hù)程序。客戶(hù)程序運(yùn)行在前臺(tái),通過(guò)OLE調(diào)用在后臺(tái)運(yùn)行的作為OLE自動(dòng)化服務(wù)器的Mapinfo。
在集成的地圖應(yīng)用程序中,根據(jù)MapInfo提供的Integrated Mapping接口,在PowerBuilder客戶(hù)程序中使用Outbound OLE Automation(輸出OLE自動(dòng)化)技術(shù),將MapInfo的地圖窗口集成到客戶(hù)程序中,從而使客戶(hù)程序具備地圖處理能力?蛻(hù)程序使用MapInfo OLE自動(dòng)化對(duì)象、MapBasic OLE自動(dòng)化對(duì)象的有關(guān)屬性和方法,通過(guò)MapInfo OLE自動(dòng)化服務(wù)器對(duì)集成的地圖窗口進(jìn)行控制。圖1給出了客戶(hù)程序和服務(wù)器程序間的關(guān)系。
圖1 PowerBuilder客戶(hù)程序和MapInfo服務(wù)器的關(guān)系
2.建立PowerBuilder客戶(hù)程序和MapInfo OLE服務(wù)器的連接
建立PowerBuilder客戶(hù)程序和MapInfo OLE服務(wù)器的連接在原理上是:在PowerBuilder開(kāi)發(fā)的客戶(hù)程序中,通過(guò)使用Outbound OLE Automation技術(shù)實(shí)現(xiàn)客戶(hù)程序和MapInfo服務(wù)器的連接,借助OLE調(diào)用MapInfo服務(wù)器。具體實(shí)現(xiàn)上是:在包含地圖窗口的框架窗口的Open事件中添加代碼,創(chuàng)建一個(gè)新的OLEObject,而將MapInfo作為這個(gè)新的OLEObject的OLE服務(wù)器。要調(diào)用MapInfo服務(wù),則需調(diào)用ConnectToNewObject()函數(shù)并傳遞OLE Programmable Object的程序標(biāo)識(shí),即“MapInfo.Application”:
//OLEObject對(duì)象的實(shí)例
OLEObject MapInfo
//接收錯(cuò)誤代碼
Integer ErrCode
//創(chuàng)建一個(gè)與MapInfo進(jìn)行通信的OLE自動(dòng)化對(duì)象
MapInfo = Create OLEObject
//連接OLE自動(dòng)化對(duì)象到MapInfo服務(wù)器
ErrCode = MapInfo.ConnectToNewObject("MapInfo.Application")
If ErrCode
【PowerBuilder和MapInfo的集成開(kāi)發(fā)技術(shù)】相關(guān)文章:
利用PowerBuilder開(kāi)發(fā)WEB應(yīng)用03-19
Mapinfo在退耕還林中應(yīng)用技術(shù)研究――Mapinfo軟件實(shí)用技術(shù)03-03
PowerBuilder的分布式計(jì)算技術(shù)及其應(yīng)用03-18
自動(dòng)分標(biāo)組合技術(shù)的研究和開(kāi)發(fā)12-02
淺析集成制造系統(tǒng)的技術(shù)構(gòu)成03-17
CAD/CAM 技術(shù)和知識(shí)庫(kù)技術(shù)在汽車(chē)開(kāi)發(fā)中的應(yīng)用03-29
音樂(lè)噴泉計(jì)算機(jī)集成控制的應(yīng)用與開(kāi)發(fā)03-18
在PowerBuilder中利用自動(dòng)化技術(shù)調(diào)用Excel處理與打印表格03-19