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