基于開源的WebGIS開發(fā)框架的研究與實現(xiàn)發(fā)表時間:2019-12-21 11:10作者:賈賀祥 本文研究了一整套開源開發(fā)框架,在后端使用基于Python語言的Django開發(fā)框架、前端使用JavaScript、數(shù)據(jù)庫使用PostgreSQL、采用FastDFS作為文件存儲、地圖服務(wù)發(fā)布采用GeoServer、地圖前端展示采用OpenLayers。開發(fā)框架如圖1所示。 圖1框架結(jié)構(gòu) 一、開發(fā)框架 1.數(shù)據(jù)層 框架使用PostgreSQL作為數(shù)據(jù)庫存儲空間數(shù)據(jù)和非空間數(shù)據(jù),PostgreSQL是一個功能非常強大的、源代碼開放的客戶/服務(wù)器關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。PostGIS作為PostgreSQL的一個擴展提供空間對象、空間索引、空間操作函數(shù)和空間操作符等空間信息服務(wù)功能,同時,PostGIS遵循OpenGIS的規(guī)范。FastDFS分布式存儲系統(tǒng)作為本框架的文件存儲,通過一個文件客戶端tracker來對多個文件服務(wù)端storage進行存儲和讀取,并實現(xiàn)負載均衡解決大容量的文件存儲和高并發(fā)訪問問題。 2.業(yè)務(wù)層 業(yè)務(wù)層是框架的核心,使用Python作為服務(wù)端的開發(fā)語言,基于Django開發(fā)框架,Django是一個開放源代碼的Web應(yīng)用框架,由Python寫成,采用了MTV的框架模式。Django具有強大的數(shù)據(jù)模型、自帶強大的后臺功能、優(yōu)雅的網(wǎng)址設(shè)計、具有強大而可擴展的模板系統(tǒng)、具有可掛在內(nèi)存緩存或其它框架實現(xiàn)超級緩存的緩存系統(tǒng)、內(nèi)置國際化系統(tǒng)方便開發(fā)出多種語言的網(wǎng)站等優(yōu)點。在開發(fā)過程中,每一個系統(tǒng)的模塊可作為獨立的APP供系統(tǒng)調(diào)用,每一個APP具有獨立的模型(數(shù)據(jù)存取層)、模板(表現(xiàn)層)、視圖(業(yè)務(wù)邏輯層),很方便的實現(xiàn)了系統(tǒng)的高內(nèi)聚低耦合。同時、Django框架也可快速高效實現(xiàn)空間數(shù)據(jù)導(dǎo)入到PostGIS并通過GeoServer自動進行服務(wù)發(fā)布。 3.表現(xiàn)層 表現(xiàn)層是整個模型的最高層,是構(gòu)建與瀏覽器之上的,通過瀏覽器向用戶展示空間數(shù)據(jù),獲取用戶輸入和操作信息并交給業(yè)務(wù)層去處理然后對結(jié)果進行展示。該框架使用Django的模板,按照功能的類別劃分為不同的模塊,每個模塊相互獨立,模塊之間又可以通信交互。在地圖展示上,采用OpenLayers,OpenLayers 是一個專為Web GIS 客戶端開發(fā)提供的JavaScript 類庫包,用于實現(xiàn)標(biāo)準(zhǔn)格式發(fā)布的地圖數(shù)據(jù)訪問。OpenLayers是一個開源的項目,其設(shè)計之意是為互聯(lián)網(wǎng)客戶端提供強大的地圖展示功能,包括地圖數(shù)據(jù)顯示與相關(guān)操作,并具有靈活的擴展機制,支持多種矢量數(shù)據(jù)格式的渲染,可以聚合多源的地理服務(wù)。 二、開發(fā)框架實現(xiàn) 利用本框架實現(xiàn)了洛陽市國土調(diào)查數(shù)據(jù)分析與共享服務(wù)系統(tǒng),系統(tǒng)主要功能包括: 1.分析和共享數(shù)據(jù)中心。將全市國土調(diào)查數(shù)據(jù)進行數(shù)據(jù)整合,并可加載土地規(guī)劃、基礎(chǔ)測繪等各類基礎(chǔ)數(shù)據(jù),形成分析和共享數(shù)據(jù)中心,為相關(guān)統(tǒng)計分析和共享服務(wù)提供數(shù)據(jù)基礎(chǔ)。 2.數(shù)據(jù)統(tǒng)計分析。實現(xiàn)對全市國土調(diào)查數(shù)據(jù)與土地規(guī)劃、基礎(chǔ)測繪等各類基礎(chǔ)數(shù)據(jù)的綜合統(tǒng)計分析,高效利用海量數(shù)據(jù),提高三調(diào)成果對管理決策的支撐服務(wù)能力。 3.數(shù)據(jù)共享服務(wù)。以三調(diào)形成的系列非涉密成果及相關(guān)成果目錄為數(shù)據(jù)基礎(chǔ),基于互聯(lián)網(wǎng)環(huán)境,研發(fā)數(shù)據(jù)共享平臺,平臺運行于政務(wù)外網(wǎng)或互聯(lián)網(wǎng),使市域范圍內(nèi)各部門形成一個緊密聯(lián)系的整體,提高資源利用率,避免在信息采集、存儲和管理上的重復(fù)與浪費。 |