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