王宇鵬
摘要:將態(tài)勢信息借助Web GIS以可視化的方式展現(xiàn)給用戶,通過直觀的展示能夠更好地輔助人們進(jìn)行決策。該文通過使用開源的地圖服務(wù)器GeoServer、空間數(shù)據(jù)庫PostgreSQL和頁面層OpenLayers庫構(gòu)建了一個(gè)基于B/S架構(gòu)的Web GIS系統(tǒng),闡明了Web GIS體系結(jié)構(gòu)、主要功能及系統(tǒng)實(shí)現(xiàn)過程中用到的關(guān)鍵技術(shù)和解決方案,為開發(fā)基于Web GIS的態(tài)勢顯示系統(tǒng)奠定了基礎(chǔ)。
關(guān)鍵詞:開源軟件;Web GIS;態(tài)勢展示
中圖分類號 TP311 文獻(xiàn)標(biāo)識碼 A 文章編號:1009-3044(2015)07-0134-04
Abstract: The Web GIS can show us the situation information by the means of visualization,which helps us to make dicisions.This thesis constructed a Web GIS by using open source platform GeoServer,PostgreSQL and OpenLayers based on B/S structure;clarified its architecture,main function and the key technology and solutions used in the realization process and laid the foudation for the developing of situation display system using Web GIS.
Key words: open source software; Web GIS; situation display
1 概述
隨著Internet技術(shù)的不斷發(fā)展和人們對地理信息系統(tǒng)需求的日益增強(qiáng),把GIS與網(wǎng)絡(luò)技術(shù)相融合,利用Internet在Web上發(fā)布空間數(shù)據(jù),為用戶提供空間數(shù)據(jù)展示、查詢和分析的功能,已經(jīng)成為GIS發(fā)展的一個(gè)重要方向。利用GIS對地理數(shù)據(jù)的強(qiáng)大處理能力和對現(xiàn)實(shí)世界的模擬能力,能夠?qū)臻g數(shù)據(jù)適時(shí)地進(jìn)行采集、更新、處理、顯示和分析。當(dāng)這些信息以可視化的方式展現(xiàn)出來時(shí),能夠讓我們更直觀地理解圖形背后的含義,從而為科學(xué)決策提供有力的支撐。
目前,Web GIS在各個(gè)領(lǐng)域都得到了廣泛應(yīng)用,國內(nèi)外都涌現(xiàn)出了許多性能穩(wěn)定且功能強(qiáng)大的商用Web GIS產(chǎn)品,如ArcIMS、MapXtreme、SuperMap等。然而,這些商用軟件不僅使用成本昂貴,而且不支持對自身功能的修改和擴(kuò)展,難以適應(yīng)用戶個(gè)性化的需求。而開源產(chǎn)品具有的免費(fèi)、自由、開放的優(yōu)勢,成為許多應(yīng)用的首選。
2 Web GIS概述
GIS的全稱是Geographic Information System,中文全名是地理信息系統(tǒng)。它是指在計(jì)算機(jī)硬、軟件系統(tǒng)的支持下,對整個(gè)或部分地球表層(包括大氣層)空間中的有關(guān)地理分布數(shù)據(jù)進(jìn)行采集、儲存、管理、運(yùn)算、分析、顯示和描述的技術(shù)系統(tǒng)。
Web GIS(網(wǎng)絡(luò)地理信息系統(tǒng))是一種在Internet或Intranet環(huán)境下基于HTTP協(xié)議的用來存儲、管理、分析、發(fā)布和共享地理信息的B/S模式的分布式計(jì)算機(jī)應(yīng)用系統(tǒng)。20世紀(jì)60年代,加拿大科學(xué)家首先提出了GIS這個(gè)概念。到了上世紀(jì)80年代,出現(xiàn)了大量基于C/S架構(gòu)的GIS軟件,也就是首先需要在本機(jī)上裝有專業(yè)的GIS軟件,然后用戶根據(jù)需求使用這些GIS軟件。但是這種基于C/S架構(gòu)的GIS產(chǎn)品其本身存在著天然的劣勢:不便于更新,不便于跨平臺。隨著Internet的爆炸式發(fā)展,網(wǎng)絡(luò)的普及程度以及網(wǎng)絡(luò)的傳輸速度有了大幅度的提升,為WebGIS的發(fā)展提供了堅(jiān)實(shí)的硬件基礎(chǔ)。于是,基于B/S架構(gòu)的GIS產(chǎn)品越來越多的開始出現(xiàn)并逐漸代替?zhèn)鹘y(tǒng)的GIS產(chǎn)品。
3 Web GIS的體系結(jié)構(gòu)
一套切實(shí)可行的Web GIS需具備以下三個(gè)部分:數(shù)據(jù)層,服務(wù)層,頁面層。本文利用開源軟件來搭建Web GIS平臺,其中數(shù)據(jù)層選擇PostgreSQL和PostGIS,服務(wù)層選擇Apache和Tomcat,頁面層選擇OpenLayers。Web GIS的體系結(jié)構(gòu)如圖1所示。
Web GIS體系結(jié)構(gòu)圖中各層的功能:
1)數(shù)據(jù)層:WebGIS的數(shù)據(jù)大致可以分為三種,一種是地圖、影像數(shù)據(jù),一種是空間屬性數(shù)據(jù),一種是業(yè)務(wù)數(shù)據(jù)。地圖、影像數(shù)據(jù)一般是一些png或者其他格式的數(shù)據(jù)組成。在GIS中有個(gè)很重要的概念,即影像金字塔。這個(gè)概念主要是為了加速地圖在前端的顯示。而我們準(zhǔn)備地圖、影像數(shù)據(jù)時(shí),也一般會首先對這些數(shù)據(jù)進(jìn)行切圖??臻g屬性數(shù)據(jù)存儲于空間數(shù)據(jù)庫中,以供數(shù)據(jù)的編輯和管理。此外,空間數(shù)據(jù)入庫后還可以支持業(yè)務(wù)邏輯的使用。
2)服務(wù)層:主要由地圖服務(wù)器和業(yè)務(wù)邏輯服務(wù)器構(gòu)成。在WebGIS中,與其他一般的Web工程有明顯區(qū)別的就體現(xiàn)在地圖服務(wù)器上面。一般的地圖服務(wù)器都由已有的軟件商提供了解決方案,比較流行的有GeoServer、MapServer、SuperServer等。利用這些地圖服務(wù)器我們能很好的實(shí)現(xiàn)地圖的發(fā)布以及對一些空間查詢和空間操作的支持。業(yè)務(wù)服務(wù)器是Web項(xiàng)目里不可獲取的一環(huán),而不同的框架里這三個(gè)層次的實(shí)現(xiàn)各有差別。
3)頁面層:由各類Web瀏覽器組成,是普通用戶與Web GIS的交互接口,主要使用HTML、CSS、Javascript、Flex等語言。
4 基于開源軟件的WebGIS的實(shí)現(xiàn)
4.1 空間數(shù)據(jù)庫的創(chuàng)建
本文采用PostgreSQL+PostGIS作為空間數(shù)據(jù)庫管理系統(tǒng)。PostgreSQL是由加州大學(xué)伯克利分校計(jì)算機(jī)系開發(fā)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng),目前是免費(fèi)開源的,PostgreSQL支持大部分SQL標(biāo)準(zhǔn),并且提供了許多其他現(xiàn)代特性,如復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并行控制系統(tǒng)等。PostGIS作為PostgreSQL的擴(kuò)展程序,提供了存儲空間地理數(shù)據(jù)的能力,使PostgreSQL成為了一個(gè)空間數(shù)據(jù)庫,能夠進(jìn)行空間數(shù)據(jù)管理、數(shù)量測量與幾何拓?fù)浞治?。PostGIS支持的空間數(shù)據(jù)類型主要包括:點(diǎn)(Point)、線(Linestring)、多邊形(Polygon)、多點(diǎn)(Mutipoint)、多線(Multilinestring)、多多邊形(Multipolygon)和集合對象集(Geometrycollection)等。PostGIS支持的對象表達(dá)方法主要有WKT(Well-Known Text,一種用于表示矢量幾何對象、空間參照系統(tǒng)之間轉(zhuǎn)換的文本標(biāo)記語言)和WKB(Well-known Binary,WKB的二進(jìn)制表示方式)。
4.1.1 安裝PostgreSQL和PostGIS
1)在PostgreSQL的官方網(wǎng)站(www.postgresql.org)上下載對應(yīng)版本的的開源數(shù)據(jù)庫PostgreSQL,本文使用的安裝包是PostgreSQL-9.3.5-windows.exe。
2)運(yùn)行該安裝包,按照向?qū)нM(jìn)行安裝,在安裝過程中最好關(guān)閉防火墻。
3)安裝完成后軟件會提示你是否在退出時(shí)配置application stack builder,這里勾選上它,然后點(diǎn)finish。
4)進(jìn)入application stack builder向?qū)Ш螅x擇PostgreSQL 9.3 on port 5432,點(diǎn)擊next。
5)在application list中勾選中你要安裝的application,這里必須勾選PostGIS 2.1for PostgreSQL 9.3.5。
6)這樣根據(jù)向?qū)Ь涂梢猿晒Π惭bPostgreSQL和它的擴(kuò)展程序PostGIS了。
4.1.2 導(dǎo)入空間數(shù)據(jù)
將shapefile格式的空間數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫時(shí),可以使用PostGIS Shapefile Import/Export Manager工具導(dǎo)入,或者使用命令行導(dǎo)入。本文主要介紹利用可視化工具PostGIS Shapefile Import/Export Manager導(dǎo)入數(shù)據(jù)。
1)建立數(shù)據(jù)庫。打開PostgreSQL的圖形化管理工具pgAdminⅢ,在pgAdminⅢ對話框中的數(shù)據(jù)庫目錄樹中新建數(shù)據(jù)庫。
2)設(shè)置新建數(shù)據(jù)庫的屬性。在屬性頁填寫變量名和選擇所有者,在定義頁選擇模板和表空間。在選擇字符編碼方式時(shí),要與之后導(dǎo)入數(shù)據(jù)的編碼方式相一致,否則會出現(xiàn)錯(cuò)誤。
3)導(dǎo)入空間數(shù)據(jù)。選擇插件中的PostGIS Shapefile and DBF Loader,連接之前建立的數(shù)據(jù)庫,加載需要添加的shapefile文件,添加完后,點(diǎn)擊import按鈕,將數(shù)據(jù)導(dǎo)入庫中。
4.2 GIS服務(wù)器的配置
GeoServer是用Java編寫的一個(gè)開源軟件服務(wù)器,允許用戶共享和編輯地理空間數(shù),利用其可以方便的發(fā)布地圖數(shù)據(jù)。GeoServer兼容WMS和WFS特性,支持PostGIS、Shapefile、ArcSDE、Oracle、VPF、MySQL、等數(shù)據(jù)庫,支持上百種投影,能夠?qū)⒕W(wǎng)絡(luò)地圖輸出為jpeg、gif、png、SVG、KML等格式,能夠運(yùn)行在任何基于J2EE/Servlet容器之上。安裝和部署GeoServer的主要步驟如下:
1)由于GeoServer是用Java編寫的開源項(xiàng)目,所以運(yùn)行GeoServer需要有JRE(Java Runtime Environment)的支持。首先,下載并安裝JRE。
2)下載GeoServer的Windows安裝程序,并按照向?qū)нM(jìn)行安裝。安裝完成后,在瀏覽器中輸入http://localhost:8080/geoserver/,如能進(jìn)入GeoServer的Web Administration界面,則說明安裝成功。
3)成功安裝GeoServer后,打開其Web Admintration界面,則可完成相關(guān)地理空間數(shù)據(jù)的編輯和發(fā)布。
4.3 基于OpenLayers和GeoServer的頁面層的實(shí)現(xiàn)
OpenLayers是一個(gè)專為Web GIS客戶端開發(fā)提供的JavaScript包,用于實(shí)現(xiàn)基于標(biāo)準(zhǔn)格式發(fā)布的空間數(shù)據(jù)訪問,支持的地圖來源包括Google Maps、Yahoo Maps、微軟Virtual Earth等。用戶還可以用簡單的圖片作為背景圖,與其他的圖層在OpenLayers中進(jìn)行疊加,在這一方面OpenLayers提供了非常多的選擇。除此之外,OpenLayers支持OGC(Open Geospatial Consortium)協(xié)會制定的WMS(Web Mapping Service)和WFS(Web Feature Service)等網(wǎng)絡(luò)服務(wù)規(guī)范,可以通過遠(yuǎn)程服務(wù)的方式,將以O(shè)GC服務(wù)形式發(fā)布的地圖數(shù)據(jù)加載到基于瀏覽器的OpenLayers客戶端中進(jìn)行顯示。
5結(jié)束語
由于Web GIS在空間數(shù)據(jù)發(fā)布、共享和可視化方面具有優(yōu)勢,各大GIS公司都爭相研發(fā)Web GIS產(chǎn)品,然而這些產(chǎn)品都需要用戶花費(fèi)資金去購買。相比而言,基于開源平臺的Web GIS產(chǎn)品不僅具有免費(fèi)的優(yōu)勢,還能根據(jù)用戶的需求自由地進(jìn)行開發(fā)。本文基于開源GIS數(shù)據(jù)庫管理系統(tǒng)PostgreSQL、服務(wù)器GeoServer和OpenLayers完成了Web GIS的框架設(shè)計(jì)和應(yīng)用實(shí)現(xiàn),對開發(fā)過程中用到的開源平臺和關(guān)鍵技術(shù)進(jìn)行了介紹,為開發(fā)類似的基于開源平臺的Web GIS產(chǎn)品提供了借鑒和參考。
參考文獻(xiàn):
[1] 肖蓓,楊聯(lián)安.WebGIS綜述[J].測繪技術(shù)裝備,2002(2):16-18.
[2] 李源泰,李紅波,趙俊三.開源GIS在WebGIS中的應(yīng)用初探[J].地理空間信息,2010(2): 100-102.
[3] 梁啟靚.基于Geoserver的開源WebGIS開發(fā)與應(yīng)用[D].西安:長安大學(xué),2010:73.
[4] 李光師.基于開源平臺構(gòu)建WebGIS應(yīng)用系統(tǒng)[J].測繪科學(xué),2011(6):259-261.
[5] 鄒時(shí)林,楊鵬.基于OpenLayers的WebGIS客戶端的研發(fā)[J].測繪與空間地理信息,2012,35(3):131-133.
[6] 陳紅華,李滿春,李飛雪.插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn)[J].地理空間信息,2011(2):7. 26-28,
[7] Brovelli M A,D. Magni.An archaeological Web GIS application based on Mapserver and PostGIS[J].INTERNATIONAL ARCHIVES OF PHOTOGRAMMETRY REMOTE SENSING AND SPATIAL INFORMATION SCIENCES,2003,34(5/W12):89-94.
[8] Dutt V Y.Ahn, Gonzalez, C.Cyber Situation Awareness Modeling Detection of Cyber Attacks With Instance-Based Learning Theory. Human Factors: The Journal of the Human Factors and Ergonomics Society,2013,55(3):605-618.
[9] Santiago Perez.A.OpenLayers Cookbook. 2012,Packt Publishing,300.
[10] 弗雷恩.響應(yīng)式Web設(shè)計(jì)HTML5和CSS3實(shí)戰(zhàn).圖靈程序設(shè)計(jì)叢書編[M].北京:人民郵電出版社,2013.