我老板要用delphi來做gis。。謝謝了~~~~~~~~~~
熱心網友
GIS開發方式選擇 地理信息系統根據其內容可分為兩大基本類型:一是應用型地理信息系統,以某一專業、領域或工作為主要內容,包括專題地理信息系統和區域綜合地理信息系統;二是工具型地理信息系統,也就是GIS工具軟件包,如ARC/INFO等,具有空間數據輸入、存儲、處理、分析和輸出等GIS基本功能。隨著地理信息系統應用領域的擴展,應用型GIS的開發工作日顯重要。如何針對不同的應用目標,高效地開發出既合乎需要又具有方便美觀豐富的界面形式的地理信息系統,是GIS開發者非常關心的問題。 本課題的目標是在“世行項目管理”中實現地圖功能,正是應用型GIS的開發。在開發初期,最主要的工作就是要確定下來實現方式。應用型GIS開發有多種方式可供選擇。 一、 應用型GIS開發的三種實現方式 獨立開發 指不依賴于任何GIS工具軟件,從空間數據的采集、編輯到數據的處理分析及結果輸出,所有的算法都由開發者獨立設計,然后選用某種程序設計語言,如Visual C++、Delphi等,在一定的操作系統平臺上編程實現。這種方式的好處在于無須依賴任何商業GIS工具軟件,減少了開發成本,但一方面對于大多數開發者來說,能力、時間、財力方面的限制使其開發出來的產品很難在功能上與商業化GIS工具軟件相比,而且在購買GIS工具軟件上省下的錢可能還抵不上開發者在開發過程中絞盡腦汁所花的代價。 單純二次開發 指完全借助于GIS工具軟件提供的開發語言進行應用系統開發。GIS工具軟件大多提供了可供用戶進行二次開發的宏語言,如ESRI的ArcView提供了Avenue語言,MapInfo公司研制的MapInfo Professional提供了MapBasic語言等等。用戶可以利用這些宏語言,以原GIS工具軟件為開發平臺,開發出自己的針對不同應用對象的應用程序。這種方式省時省心,但進行二次開發的宏語言,作為編程語言只能算是二流,功能極弱,用它們來開發應用程序仍然不盡如人意。 集成二次開發 集成二次開發是指利用專業的GIS工具軟件,如ArcView、MapInfo等,實現GIS的基本功能,以通用軟件開發工具尤其是可視化開發工具,如Delphi、Visual C++、Visual Basic、Power Builder等為開發平臺,進行二者的集成開發。 集成二次開發目前主要有兩種方式: 1。OLE/DDE 采用OLE Automation技術或利用DDE技術,用軟件開發工具開發前臺可執行應用程序,以OLE自動化方式或DDE方式啟動GIS工具軟件在后臺執行,利用回調技術動態獲取其返回信息,實現應用程序中的地理信息處理功能; 2。 GIS控件 利用GIS工具軟件生產廠家提供的建立在OCX技術基礎上的GIS功能控件,如ESRI的MapObjects、MapInfo公司的MapX等,在Delphi等編程工具編制的應用程序中,直接將GIS功能嵌入其中,實現地理信息系統的各種功能。 二、 三種實現方式的分析與比較 由于獨立開發難度太大,單純二次開發受GIS工具提供的編程語言的限制差強人意,因此結合GIS工具軟件與當今可視化開發語言的集成二次開發方式就成為GIS應用開發的主流。它的優點是既可以充分利用GIS工具軟件對空間數據庫的管理、分析功能,又可以利用其它可視化開發語言具有的高效、方便等編程優點,集二者之所長,不僅能大大提高應用系統的開發效率,而且使用可視化軟件開發工具開發出來的應用程序具有更好的外觀效果,更強大的數據庫功能,而且可靠性好、易于移植、便于維護。尤其是使用OCX技術利用GIS功能組件進行集成開發,更能表現出這些優勢。 由于上述優點,集成二次開發正成為應用GIS開發的主流方向。這種方法唯一的缺點是前期投入比較大,需要同時購買GIS工具軟件和可視化編程軟件,但“工欲善其事,必先利其器”,這種投資值得。 目前許多軟件公司都開發了很多ActiveX控件,合理選擇和運用現成的控件,減少了開發者的編程工作量,使開發者避開某些應用的具體編程,直接調用控件,實現這些具體應用,不僅可以縮短程序開發周期,使編程過程更簡潔,用戶界面更友好,可以使程序更加靈活、簡便。與利用OLE Automation技術作為服務器的MapInfo相比,利用控件開發速度快,占用資源少,而且易實現許多底層的編程和開發功能。。