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