




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、北京大學遙感與地理信息系統研究所整理課件GIS軟件軟件GIS軟件體系結構桌面GIS網絡GISGIS軟件二次開發方法WebGISGIS軟件的發展軟件的發展l七十年代以前lGIS軟件只是簡單的由一系列計算機例程組成,有經驗的程序員可以利用它們構建一個可運行的GIS系統l每個GIS系統在功能上互不相同,需要大量資源創建一個可工作的系統 l七十年代末和八十年代初 l命令行:用戶依靠輸入指令與GIS軟件交互,完成制圖和查詢統計等工作 lGIS軟件包實際上是空間操作算子或命令的工具箱,應用到一個數據集上產生另一個數據集 l八十年代末 l圖形用戶界面與軟件定制能力應用于GISl基于窗體的菜單驅動的GIS,并
2、具備可定制能力 l為特定領域的最終用戶構建專用的應用系統l二十一世紀 lWeb服務與分布式GISl當前GIS軟件的基本特征l菜單驅動l可定制能力l可以在Web上分布GIS軟件體系結構軟件體系結構l三層結構l用戶界面表現層 l用戶與圖形用戶界面(GUI)交互lGUI是集成的菜單、工具條及其它控件的集合,它提供了對GIS工具的操作 lGIS工具集業務邏輯層l定義了GIS軟件用于處理數據的功能和函數 l數據管理系統數據服務層 l數據存儲在由數據管理軟件維護的文件或數據庫中l實現模式ldesktop GISlclient-server GISlcentralized desktop GISlcentr
3、alized server GIS用戶界面GIS工具集數據管理數據表現層表現層業務邏輯層業務邏輯層數據服務層數據服務層Destop GIS體系結構體系結構l最簡單的模式l單用戶l三個軟件層以桌面GIS軟件包的形式安裝在一臺PC上l變種l數據文件由集中式文件服務器(PC)管理l但數據服務功能仍然是桌面GIS的一部分l所有文件訪問通過LAN網絡實現文件文件PC文件文件PC文件服務器文件服務器PCLANClient-Server GIS體系結構體系結構l多用戶l三個軟件層可以安裝在不同的計算機上,提高靈活性和性能l用戶與桌面GIS系統交互l桌面系統實現所有業務邏輯l數據和數據管理軟件安裝在另一臺通過
4、網絡連接的計算機上lThick Client數據服務器數據服務器PCDBMS桌面桌面GIS客戶端客戶端LAN/WANCentralized Desktop GIS體系結構體系結構lGUI和業務邏輯部署在中心服務器上,稱為應用服務器層或中間層l應用服務層由桌面GIS包實現l應用服務層需要同時安裝應用服務器軟件l數據由數據服務器管理l用戶在遠程PC上通過LAN或WAN訪問lThin Client數據服務器數據服務器PCDBMS瘦客戶瘦客戶LAN/WAN應用服務平臺應用服務平臺GIS桌面桌面GIS應用服務器應用服務器Centralized Server GIS體系結構體系結構l業務邏輯部署在真正的應
5、用服務層,作為中間層l客戶端可以是基于PC、瀏覽器或特定設備的胖客戶或瘦客戶l客戶端與應用服務層通過LAN、WAN或Internet連接數據服務器數據服務器PCDBMS客戶端客戶端LAN, WANor WebGISServerBrowserDevice應用服務器應用服務器Desktop和和Internet GIS 特征特征Desktop GISInternet GIS客戶端規模客戶端規模胖瘦客戶端平臺客戶端平臺應用程序瀏覽器服務器尺寸服務器尺寸瘦/胖胖服務器平臺服務器平臺Windows/UnixWindows/Unix組件標準組件標準COM為主Java為主網絡網絡局域網/廣域網Internet
6、桌面軟件桌面軟件GIS工具集工具集數據服務器數據服務器數據數據Desktop GIS瀏覽器瀏覽器應用服務器應用服務器數據服務器數據服務器數據數據Internet GIS構建構建GIS軟件系統軟件系統 lGIS軟件體系結構的核心部分l用戶界面、工具、數據管理器、數據模型和定制環境l現代的GIS軟件系統的軟件組件構成l終端用戶應用l一組菜單驅動的用戶界面,實現主要的系統功能(數據定位、地圖生成、地址編碼等)l空間分析工具l構成軟件主要功能和性能的核心引擎l編輯、轉換、顯示、分析、輸出和定制 l數據訪問組件l相對底層的組件,存儲和管理對空間數據的訪問GIS應用軟件的開發方式應用軟件的開發方式 l通過
7、購買相應的GIS軟件或系統,在本地區或本領域內部署實施l購買GIS平臺軟件進行二次開發、購買完整的軟件產品、購買完整的GIS系統、購買GIS服務 l請軟件開發商來開發l承包開發、合作開發 l由組織內部人員自己開發 實施方案完全自主開發購買二次開發平臺開發購買完整軟件購買完整系統購買服務承包開發合作開發對提供者依賴性低低高很高很高很高中開發周期長長-中長短很短很短長-中長長-中長初始費用低中等中等高高高中等人力費用高中等低低很低低中等風險和不確定性高較低低低中等高中等靈活性完全可以完全可以中等中等不定高完全可以對用戶技術要求很高高中等中等很低中等高現有資源的利用高高中等低很低低中等-高GIS軟件
8、定制軟件定制 lGIS軟件定制l是為創建面向特定目的應用而修改GIS軟件的過程l從GUI中刪除不需要的控件,如菜單選項或按鈕l為核心軟件添加支持分析、制圖、管理等復雜功能l要實現定制需要滿足的條件lGIS軟件必須提供其數據模型的總體描述l并暴露接口來使用、修改和補充現有的功能 l使用開放的、符合工業標準的可視化開發環境支持軟件定制 lGIS廠商必須暴露其軟件包的對象模型和函數的細節 l可以通過創建并編寫一系列應用編程接口(API)來實現l這些接口允許GIS軟件的功能函數可以在一個可視化開發環境的程序設計工具中被調用 l組件對象模型lComponent Object Model (COM);.N
9、et組件lJava Bean;EJBl公共對象請求代理體系結構lCommon Object Request Broker Architecture,CORBAGIS二次開發二次開發lGIS應用系統的兩個核心,決定了GIS應用軟件開發方式的選擇l通用GIS功能l領域定制l利用GIS二次開發平臺進行應用系統的二次開發 l二次開發平臺(組件或應用編程接口)提供了通用GIS功能的支持,可以在應用系統中直接使用 l二次開發平臺可以嵌入到其他系統中,具有更好的可復用性、擴展性和靈活性,具有較高的定制能力 lGIS二次開發方法,特別是基于GIS組件的二次開發方法,成為GIS應用開發的主流方式 lGIS二次開
10、發的主要途徑l宏語言方式l腳本語言方式l函數調用方式l組件方式GIS二次開發二次開發宏語言方式宏語言方式(1) l宏l宏是一種解釋性編程語言l宏程序是一連串的指令或函數的組合,可以讓使用者將一些常用的功能自動化 lGIS宏的優點l它是服務于特定的GIS軟件系統,可以直接使用GIS軟件系統內部指令和函數,完成空間信息和屬性信息的綜合管理 lArcInfo AML宏語言lAML(Arc Macro Language)是內嵌于ArcInfo內部的解釋型宏語言,適用于任何ArcInfo環境(Unix或Windows等) lAML命令:將單一功能的ArcInfo命令組織成解決復雜問題的程序lAML菜單:
11、將AML命令集成到簡單易用的用戶圖形界面 lAML文件一般包括5個部分:ArcInfo命令、指示符、函數、變量和注釋 GIS二次開發二次開發宏語言方式宏語言方式(2)l基于VBA的GIS二次開發lVBAlVisual Basic for Applications,可以認為是Visual Basic的子集l它是一種通用的自動化語言,可以使常用的程序自動化l利用它生成嵌入在應用程序內的宏,可以創建自定義的解決方案lArcMap中的VBA開發l在ArcMap中編寫VB宏,將VB函數和ArcMap擴展對象庫集成l可以擴展ArcMap的菜單、工具條等,并完成用戶的特定需求 l兩種方法直接編寫VBA宏創建
12、UIControl并在其事件中編寫代碼 GIS二次開發二次開發腳本語言方式腳本語言方式(1)l腳本語言l腳本一種純文本保存的程序,腳本程序是確定的一系列控制計算機進行運算操作動作的組合,在其中可以實現一定的邏輯分支等l腳本語言相對一般程序開發來說比較接近自然語言,可以不經編譯而是解釋執行,利于快速開發或一些輕量的控制lGIS中的腳本語言l一些GIS系統中,也提供了嵌入的腳本語言,通過編寫腳本,完成用戶定制的功能,實現二次開發 l利用這些腳本語言,以原GIS 工具軟件為開發平臺,開發出自己的針對不同應用對象的應用程序 l省時省力,系統的穩定性和可靠性高 l但難以開發復雜的應用模型,且系統結構松散
13、、系統顯得有些臃腫,操作效率和系統功能利用效率較低 lGIS中代表性的腳本語言lMapInfo的MapBasiclArcView的AvenuelArcGIS9中的VBScript、JavaScript和PythonGIS二次開發二次開發腳本語言方式腳本語言方式(2)l MapInfo的MapBasiclMapBasic一種類Basic語言,能夠擴展MapInfo功能,并與其他應用軟件集成 lMapBasic編輯出的程序可以在MapInfo Professional或MapInfo Runtime上運行 l ArcView的AvenuelAvenue是ArcView內置的面向對象的專用程序設計腳
14、本語言 l包括了ArcView系統中所有可操作的文檔和其它要素 l幾乎所有的ArcView操作都可以通過Avenue腳本語言來實現 lWindows環境下的ArcView的Avenue還提供了通過DLL調用Windows API函數,增強了ArcView應用的二次開發的深度。VB和Avenue成為開發ArcView應用的最佳組合lArcGIS 9中的Pythonl支持Python、VBScript、Java Script和PERL等多種腳本語言lPython是一種面向對象的解釋性語言,能夠提供基本的構建塊,也可以用C、C+、Java進行擴展,因此可以用它開發任何類型的程序 lPython支持A
15、ML和Avenue提供的所有功能 lESRI使用Python作為文檔和支持的主要的腳本語言,目前也成為ESRI大力推廣的應用于以上版本的主要的二次開發腳本語言 GIS二次開發二次開發函數調用方式函數調用方式l基于函數調用的GIS二次開發l將各種GIS功能,包裝成函數的形式,生成可以被多種程序設計語言共享調研的二進制程序塊l在應用系統建設時,加載這些二進制程序模塊,調用其中的函數,實現相應的GIS功能l基于函數調用的GIS二次開發主要使用動態鏈接庫(DLL)技術l動態鏈接庫獨立在應用系統之外,只在系統運行到適當的位置時才動態加載,使用完后即可釋放,因此通過這種方法開發的系統負擔較小,獨立性好l動
16、態鏈接庫可以被多個不同的系統使用,可以方便的嵌入到應用系統中,提高了GIS軟件的可復用性l應用系統可以獨立于原GIS庫,其擴展性和集成性都明顯優于宏、腳本語言等二次開發方式 l廣泛使用的各種程序設計語言或集成開發環境(如Visual C+、Visual Basic、Delphi等)都可以很好的支持動態鏈接庫的使用 l典型的基于函數調用的GIS二次開發lMapGIS以API函數的形式提供了一系列的GIS二次開發庫,可以全面支持GIS應用系統的二次開發 GIS二次開發二次開發組件方式組件方式(1)l組件技術 lCOM/DCOM、.Net組件、CORBA、JavaBean、EJBlActiveX控件
17、lCOM物理實現的一種方式l提供一種面向對象、與操作系統無關、與機器平臺無關、可以在應用程序之間互相訪問對象地機制 lActiveX控件開發端和使用端是完全獨立的,可以用于不同語言、不同開發平臺、不同的系統環境中l.Net組件lGIS組件l把GIS的功能適當抽象,以組件形式供開發者使用 l獨立靈活,成本低 l可擴展、可集成程度高 l同樣強大的GIS功能 l開發簡捷 l基于組件的二次開發是應用最廣泛,功能最強大的GIS二次開發方法l比較具有代表性的GIS組件lESRI ArcObject, MapObject,ArcEnginelMapInfo MapXlGeoMedialSuperMap Ob
18、ject GIS二次開發二次開發組件方式組件方式(2)lArcObjectl簡稱AO,是ESRI公司構建的一系列COM組件集,可以利用ArcObject提供的組件對象來進行應用開發 l是ArcGIS中的ArcMap、ArcCatalog和 ArcScene的開發平臺l通過ArcObject可完成以下甚至更多的GIS功能l空間數據的顯示、查詢檢索、編輯和分析l創建各種專題圖和統計報表l高級的制圖和輸出功能l空間數據管理和維護lArcObject包含若干個ActiveX控件lMapControl控件提供了類似ArcMap中的數據視圖的窗口lPageLayoutControl控件提供了類似ArcMa
19、p中的版面視圖的窗口 ArcObject對象圖對象圖GIS二次開發二次開發組件方式組件方式(3)lArcEnginelArcGIS 9中新的開發產品,從核心ArcObject中構建l可以創建獨立的應用程序或者集成到第三方的軟件系統中l功能l讀取所有支持的ESRI數據格式l地圖制作lArcGIS級別的繪圖l查詢和分析l地理編碼l簡單編輯l開發控件lMapControllPageLayoutControllToolbarControllTOCCControllReaderControllSceneControllGlobleControll若干命令和工具GIS二次開發二次開發組件方式組件方式(4)
20、lMapObject (MO)l由ESRI提供的一個ActiveX組件l主要功能l可完成許多基礎的地圖管理、操作、查詢、制圖和輸出功能l但不能執行某些高級功能,如拓撲編輯、高質量地圖輸出、表面模型或網絡分析等高級空間分析l包含一個Map控件和46個對象l地圖顯示對象用符號或專題表達顯示一張地圖,也可加入圖像做為背景,在地圖上顯示動態數據l數據訪問對象可以建立與地圖數據的聯系,修改屬性數據,并從地圖元素上獲取其屬性信息l幾何圖形對象支持獲取圖層中選擇元素的幾何信息,向圖層添加幾何要素,在地圖中畫幾何目標而不更新圖層l地址匹配對象支持獲取圖層上的某個地址,該地址具有街道和地址范圍并返回一個位置,也
21、可以查找十字路口的位置和地名l投影對象支持空間參考坐標系、設置投影參數并進行投影變化等操作 GIS二次開發二次開發組件方式組件方式(5)lMapXlMapInfo公司提供的具有地圖分析功能的ActiveX控件產品 l可以實現MapInfo Professional的絕大部分地圖編輯和空間分析功能 lSuperMap Objectsl是SuperMap GIS系列軟件中的組件式GIS開發平臺l提供的功能l地圖基本操作、編輯與捕捉功能、專題地圖制作、拓撲處理與分析、空間分析功能、三維建模與分析、布局排版等 l由六組可拆分的組件群組成l核心組件、三維組件、拓撲組件、布局組件、分析組件、輔助開發組件
22、WebGISl概念lWebGIS是利用互聯網技術(Internet),為地理信息和空間分析知識的存取、處理和傳播提供便利的系統 l大多數的客戶端應用采用了WWW 協議l基本思想是在互聯網上提供地理信息, 讓用戶通過網絡可以獲得遠端地理信息系統中的數據和功能服務 l特點l更廣泛的客戶訪問范圍l客戶端平臺獨立性l更簡單的操作 l良好的可擴展性l發展 l瀏覽型服務:B/Sl數據分布:分布式多數據源l服務分布:WebServicel新的發展趨勢:無線、三維WebGIS的體系結構的體系結構 l三層B/S體系結構l客戶端一般為Web瀏覽器,服務器包括Web服務器,Map服務器,GIS服務器,空間數據庫 l
23、Web瀏覽器是用戶和WebGIS的交互接口,用來顯示地圖和實現客戶端的在線查詢和分析功能lWeb服務器響應來自Web瀏覽器的請求,通過CGI、Servlet等將請求傳遞給Map服務器,并從Map服務器得到請求結果發還給瀏覽器lMap服務器將用戶請求分配給相應的GIS服務器或空間數據庫,并能夠實現網絡的負載平衡lGIS服務器提供了空間數據的存取、查詢、分析、處理等功能l空間數據庫是用來存儲和管理空間數據 WebGIS的實現技術的實現技術(1)lCGI方式lCGI是一個用于Web服務器和客戶端瀏覽器之間的特定標準,它允許網頁用戶通過網頁的命令來啟動一個存在于網頁服務器主機的程序(稱為CGI程序),
24、并且接收到這個程序的輸出結果 l利用CGI可以生成圖像,然后傳遞到客戶端瀏覽器 l用CGI啟動后端的批處理制圖軟件 lCGI啟動后端GIS軟件,使用進程間通訊實現lServer API方式 lServer API類似于CGI,但依附于特定的Web服務器l如Microsoft ISAPI依附于IISlServer API啟動后會一直處于運行狀態,其速度較CGI快 l插件方式 l瀏覽器插件是指能夠同瀏覽器交換信息的軟件,通過開發插件以使瀏覽器支持其特定格式的數據文件 l利用瀏覽器插件,可以將一部分服務器的功能轉移到客戶端,可以處理和傳輸矢量格式空間數據l需要在客戶端先安裝,然后才能使用,給使用造成
25、了不方便WebGIS的實現技術的實現技術(2)lJava Applet方式 lJava Applet能嵌入HTML文件中,被瀏覽器解釋執行l運行時,Applet從服務器下載,不需要進行軟件安裝l可以實現Applet與服務器程序的直接連接,從而使數據處理操作既可以在服務器上實現,又可以在客戶端實現,以實現兩端負載的平衡 lAxtiveX方式 l其基礎是DCOM,可以嵌入到HTML文件中,在因特網上運行 l只能運行于MS-Windows平臺上,并且由于可以進行磁盤操作,其安全性較差 l執行速度快,可以用多種語言實現,可以復用原有GIS軟件的源代碼,提高了軟件開發效率lWebService方式 l一種基于對象/組件模型的分布式計算技術l基礎是XML及基于其上的SOAPl客戶端和服務端把請求和數據結果以XML 的形式進行SOAP 包裝,以HTTP 等形式進行傳送,從而實現相應交互l三種基本角色:服務的提供者、服務的請求者、服務中介(服務注冊庫)l采用WebService的方式實現的WebGIS有時也稱
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 使用權的房子裝修流程
- 培訓部門年終總結
- 創新性思維及思維障礙
- 聯科數據培訓總結
- 小學英語人教版 (PEP)六年級上冊Unit 2 Ways to go to school Part B第3課時教案
- 小學英語北京版一年級上冊Lesson 10教案
- 機加車間安全培訓
- 企業合作聯盟合同模板
- 生姜購銷合同模板
- 下肢深靜脈血栓的護理
- 裝配式建筑發展存在的問題及對策分析
- 中國古典文獻學(全套)
- 自身免疫性腦炎
- 銀行保險客戶KYC基礎信息表
- 醫院質控科工作質量考核指標
- GB/T 4857.14-1999包裝運輸包裝件傾翻試驗方法
- GB/T 11881-2006羽毛球
- 煤礦從業人員安全培訓考試題庫(附答案)
- 《詩意中國》朗誦稿
- 第十章-國際政治與世界格局-(《政治學概論》課件)
- 信息技術與小學數學教學的深度融合課件
評論
0/150
提交評論