亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于開源軟件的WebGIS框架設(shè)計

        2013-12-31 00:00:00李丹
        計算機時代 2013年12期

        摘 要: WebGIS網(wǎng)絡(luò)地理信息系統(tǒng)是Internet技術(shù)應(yīng)用于GIS地理信息系統(tǒng)開發(fā)的產(chǎn)物。在互聯(lián)網(wǎng)環(huán)境下,以Web頁面作為GIS軟件的用戶界面,把Internet和GIS技術(shù)結(jié)合在一起,可為各種地理信息應(yīng)用提供GIS功能,以提高系統(tǒng)性能,使用戶共享互聯(lián)網(wǎng)資源。為此,在開源軟件的基礎(chǔ)上,通過使用GeoServer、PostGIS數(shù)據(jù)庫和OpenLayers實現(xiàn)了WebGIS的展示層、處理層和數(shù)據(jù)層三層體系框架。

        關(guān)鍵詞: WebGIS; GeoServer; 空間數(shù)據(jù)庫; 體系框架

        中圖分類號:TP39 文獻標志碼:A 文章編號:1006-8228(2013)12-45-03

        Design of WebGIS framework based on open source software

        Li Dan

        (Computer Department, Sichuan Univercity, Chengdu, Sichuan 610065, China)

        Abstract: WebGIS Internet geographical information system is the product of the Internet technology applied to GIS. Based on Internet environment, taking the web page as the user interface of GIS software, combining the Internet with GIS technology, GIS function is offered for various geographic information applications, in order to improve performance, satisfy users' needs and share the Internet resources. A three-layer framework (presentation layers, processing layers, data layers) about WebGIS on the basis of open source software such as GeoServer, PostGIS and OpenLayers is implemented.

        Key words: WebGIS; GeoServer; spatail database; framework

        0 引言

        GIS是基于數(shù)據(jù)庫管理系統(tǒng)的分析和管理空間對象的信息系統(tǒng),WebGIS即網(wǎng)絡(luò)地理信息系統(tǒng),是基于Internet平臺,客戶端應(yīng)用軟件采用網(wǎng)絡(luò)協(xié)議,并運用在Internet上的地理信息系統(tǒng)。一般有多主機,多數(shù)據(jù)庫和多個客戶端分布式地連接在Internet上而組成。WebGIS是利用Web技術(shù)來擴展和完善地理信息系統(tǒng)的一項技術(shù)[1-2],是基于網(wǎng)絡(luò)的客戶機/服務(wù)器系統(tǒng);利用因特網(wǎng)來進行客戶端和服務(wù)器之間的信息交換;是一個分布式系統(tǒng),用戶和服務(wù)器可以分布在不同的地點和不同的計算機平臺上。WebGIS主要用于空間數(shù)據(jù)發(fā)布,空間查詢與檢索,空間模型服務(wù),Web資源的組織等。WebGIS是基于Internet的GIS,可以有多種方法實現(xiàn),主要有兩種模式:客戶端/服務(wù)器模式(C/S)和瀏覽器/服務(wù)器模式(B/S)。

        1 設(shè)計思想

        廣義WebGIS有兩種主要架構(gòu):C/S架構(gòu)的GIS和B/S架構(gòu)的GIS,狹義上的WebGIS是通過網(wǎng)頁瀏覽器訪問空間數(shù)據(jù),進行空間操作。而WebGIS需要滿足空間數(shù)據(jù)和屬性數(shù)據(jù)的傳輸瀏覽、專業(yè)應(yīng)用和空間分析等功能,所以采取C/S和B/S混合模式的WebGIS架構(gòu)。

        開源軟件是指開放源代碼的軟件,它最大的優(yōu)勢是源代碼免費,能更好地實現(xiàn)代碼重用及資源改造。本文設(shè)計的WebGIS框架就是在開源軟件的基礎(chǔ)上進行的。

        美國OGC(OpenGIS協(xié)會,OpenGIS Consortium)提出了OpenGIS(Ope Geodata Interopetation Specification)開放的地理數(shù)據(jù)互操作規(guī)范,OpenGIS是為了使不同的地理信息系統(tǒng)軟件之間具有更良好的互操作性,以及在異構(gòu)分布數(shù)據(jù)庫中實現(xiàn)信息共享的途徑[3]。OpenGIS致力于建立一個無“邊界”的、分布的、基于構(gòu)件的地理數(shù)據(jù)互操作環(huán)境,與傳統(tǒng)的地理信息處理技術(shù)相比,基于該規(guī)范的GIS軟件將具有很好的可擴展性、可升級性、可移植性、開放性、互操作性和易用性。開源的WebGIS設(shè)計思想就來源于OpenGIS。

        2 工具的選擇

        2.1 空間數(shù)據(jù)庫

        空間數(shù)據(jù)庫是隨著地理信息系統(tǒng)GIS的開發(fā)和應(yīng)用發(fā)展起來的數(shù)據(jù)庫新技術(shù),主要用來處理空間數(shù)據(jù),一般是以一系列特定結(jié)構(gòu)的文件形式組織在存儲介質(zhì)之上。本文所設(shè)計的WebGIS框架選用的是PostGIS數(shù)據(jù)庫。

        PostGIS是空間數(shù)據(jù)庫PostgreSQL的一個擴展,它是一種對象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在PostgreSQL上增加了存儲管理空間數(shù)據(jù)的能力。PostGIS提供如下空間信息服務(wù)功能:空間對象、空間索引、空間操作函數(shù)和空間操作符等。PostGIS的版權(quán)被納入到GNU(GNU's Not Unix,革奴計劃)的GPL(General Public License,通用許可證)中,也就是說,任何人可以自由得到PostGIS的源碼并對其做研究和改進。PostGIS支持所有的空間數(shù)據(jù)類型,包括:點(POINT)、線(LINESTRING)、多邊形(POLYGON)和集合對象集(GEOMETRYCOLLECTION)等。支持所有的數(shù)據(jù)存取和構(gòu)造方法,如GeomFromText()、AsBinary()以及GeometryN()等。提供簡單的空間分析函數(shù)(如Area和Length),同時也提供其他一些具有復(fù)雜分析功能的函數(shù),比如Distance。提供了空間操作符(如Union和Difference)用于空間數(shù)據(jù)操作。比如,Union操作符融合多邊形之間的邊界,兩個交迭的多邊形通過Union運算就會形成一個新的多邊形,這個新的多邊形的邊界為兩個多邊形中最大邊界。

        2.2 地圖服務(wù)器

        目前較流行的地圖服務(wù)器有兩款,一款是MapServer,MapServer的內(nèi)核使用C++編寫,基于CGI(Common Gateway Interface,通用接口)腳本實現(xiàn),頁面調(diào)用支持PHP(Hypertext Preprocessor,超文本處理語言)、JSP(Java Server Page)等多種語言,并且對OGC的WMS(Web Map Server,網(wǎng)絡(luò)地圖服務(wù))和WFS(Web Feature Server,網(wǎng)絡(luò)要素服務(wù))規(guī)范提供支持。另一款是GeoServer,它是OpenGIS Web服務(wù)器規(guī)范的J2EE(Java 2 Enterprise Edition,Java2平臺企業(yè)版)實現(xiàn),基于Java和Geotools庫開發(fā)。GeoServer功能全面且遵循OGC開放標準,并同時擁有PostGIS與uDig的Refractions公司的技術(shù)支持,GoServer對發(fā)布WFS和WMS服務(wù)提供便捷的支持,并以XML(Extensible Map Language,可擴展標記語言)文件描述所有地圖服務(wù),利用GeoServer可以方便地發(fā)布地圖數(shù)據(jù),允許用戶對特征數(shù)據(jù)進行更新、刪除、插入操作,通過GeoServer可以比較容易地在用戶之間迅速共享空間地理信息。GeoServer安裝文件有兩種,一種是常見的.EXE安裝文件,這種安裝方式最簡單,只要確保在電腦上安裝了JDK并且8080端口是開的,按照安裝步驟就可以完成安裝;另一種是以.WAR的形式安裝,開發(fā)者電腦上得先安裝有Tomcat,然后將此WAR導(dǎo)入即可[3]。

        比較而言,MapServer對WMS的支持更為高效,而GeoServer則更擅長于結(jié)合WFS規(guī)范的屬性查詢,但就發(fā)展趨勢來看,J2EE的架構(gòu)明顯要占據(jù)優(yōu)勢,并且GeoServer擁有基于Eclipse RCP平臺的開源客戶端uDig,隨著GeoServer的版本更新,其有實力成為今后開源WebGIS解決方案的主流,因此本文選擇了GeoServer作為地圖服務(wù)器。

        2.3 地圖客戶端

        OpenLayers是由MetaCarta公司開發(fā)的,用于WebGIS客戶端的JavaScript包,它實現(xiàn)訪問地理空間數(shù)據(jù)的方法都符合行業(yè)標準,比如OpenGIS的WMS和WFS規(guī)范,OpenLayers采用面向?qū)ο蠓绞介_發(fā),并使用來自Prototype.js和Rico中的一些組件。OpenLayers所能夠利用的地圖數(shù)據(jù)資源有很多,可提供給用戶選擇,比如WMS、WFS、GoogleMap等,當(dāng)然,用戶還可以用簡單的圖片地圖作為背景圖。采用OpenLayers作為客戶端不會產(chǎn)生瀏覽器依賴性。由于OpenLayers采用JavaScript語言實現(xiàn),而應(yīng)用于Web瀏覽器中的DOM(文檔對象模型)用JavaScript實現(xiàn),同時,Web瀏覽器(比如IE,F(xiàn)F等)都支持DOM。OpenLayers APIS采用動態(tài)類型腳本語言JavaScript編寫,實現(xiàn)了類似于Ajax功能的無刷新更新頁面,能夠帶給用戶豐富的桌面體驗[4-7]。

        在操作方面,OpenLayers除了可以在瀏覽器中幫助開發(fā)者實現(xiàn)地圖瀏覽的基本效果,比如放大(Zoom In)、縮?。╖oom Out)、平移(Pan)等常用操作之外,還可以進行選取面、選取線、要素選擇、圖層疊加等不同的操作,甚至可以對已有的OpenLayers 操作和數(shù)據(jù)支持類型進行擴充,為其賦予更多的功能。例如,它可以為OpenLayers添加網(wǎng)絡(luò)處理服務(wù)WPS的操作接口,從而利用已有的空間分析處理服務(wù)來對加載的地理空間數(shù)據(jù)進行計算。同時,在OpenLayers提供的類庫當(dāng)中,它還使用了類庫Prototype.js和Rico中的部分組件,為地圖瀏覽操作客戶端增加Ajax效果。

        3 框架體系結(jié)構(gòu)

        本文所開發(fā)的WebGIS是在原有的GIS系統(tǒng)的基礎(chǔ)上所做的網(wǎng)絡(luò)化開發(fā),把WebGIS框架分為三個部分:基于OpenLayers開發(fā)的地圖客戶端和web瀏覽器為展示層;以GeoServer地圖服務(wù)器和Web服務(wù)器作為處理層,這里的Web服務(wù)器選用的是Tomcat,當(dāng)然也可以選用WebLogic以及GeoServer自帶的Jetty,選用Tomcat是因為OpenLayers是PHP的,所以只有安裝在支持PHP的Tomcat上了;最后以文件系統(tǒng)與PostGIS空間數(shù)據(jù)庫作為數(shù)據(jù)層[4-7]。

        框架體系結(jié)構(gòu)如圖1所示,首先,客戶端輸入信息或請求并提交給處理層,通過Web服務(wù)器處理客戶端的請求,并通過地圖服務(wù)器GeoServer提供的接口與數(shù)據(jù)層通信,數(shù)據(jù)層主要是存儲空間數(shù)據(jù),系統(tǒng)數(shù)據(jù)等,然后將最終查詢到的結(jié)果通過地圖服務(wù)器GeoServer、Web服務(wù)器Tomcat、地圖客戶端OpenLayers,最后顯示在瀏覽器上。

        [GeoServer][WFS] [WMS] [地圖服務(wù)器

        ][Web服務(wù)器][Tomcat] [文件系統(tǒng)] [PostgreSQL

        空間數(shù)據(jù)庫][瀏覽器][地圖客戶端

        OpenLayers] [展示層][處理層][數(shù)據(jù)層]

        圖1 框架體系結(jié)構(gòu)圖

        4 框架展示

        本文所采用的是C/S和B/S混合的WebGIS框架,平臺搭建過程主要按照以下步驟完成。

        4.1 空間數(shù)據(jù)庫配置

        PostgreSQL的安裝比較簡單,在官網(wǎng)下載最新的版本,按照提示進行安裝,但是在出現(xiàn)application list這一步時要注意,勾選上要安裝的 application,這里必須勾選上PostGIS,安裝完成后,就可以對數(shù)據(jù)庫進行操作了。PostgreSQL數(shù)據(jù)庫提供了存儲空間地理數(shù)據(jù)的模板template_PostGIS,可以以此建立自己的GIS數(shù)據(jù)庫testgis,具體代碼如下:

        CREATE DATABASE testgis

        WITH OWNER=postgres

        ENCODING='UTF8'

        TABLESPACE=pg_default

        LC_COLLATE='C'

        LC_CTYPE='C'

        CONNECTION LIMIT=-1;

        ALTER DATABASE template_PostGIS_20 SET search_path=

        \"$user\", public, topology;

        4.2 將SHP格式地圖數(shù)據(jù)導(dǎo)入空間數(shù)據(jù)庫

        uDig是一款開源桌面GIS軟件,基于Java和Eclipse平臺,可以進行shp格式地圖文件的編輯和查看。在這里使用這款開源軟件,是為了生成地圖樣式(SLD)文件,Udig支持可視化調(diào)整地圖圖形元素的配色方案。

        利用PostgreSQL自帶的shp2pgsql.exe工具把shp轉(zhuǎn)換成sql語句,然后在管理窗口執(zhí)行C:\Program Files\PostgreSQL\9.1\bin>shp2pgsql.exe G:\shapefiles\test.shp test> G:\shapefiles\test.sql,這樣就完成了地理信息數(shù)據(jù)的建立,然后要將該數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫testgis中,這一步的執(zhí)行代碼是:C:\Program Files\PostgreSQL\9.1\bin>psql -d testgis -f G:\shapefiles\test.sql postgre

        4.3 搭建地圖服務(wù)器GeoServer

        在安裝GeoServer之前,必須安裝JDK,并配置好Java的環(huán)境變量,我們要把GeoServer發(fā)布在Web服務(wù)器Tomcat上,所以需要先安裝好Tomcat,然后從官方網(wǎng)下載最新版本的geoserver.war包,把geoserver.war包直接復(fù)制到Tomcat的安裝目錄webapps下,啟動Tomcat就可以了。

        4.4 使用OpeanLayers實現(xiàn)Web客戶端

        Web端顯示地圖數(shù)據(jù)的實現(xiàn)是基于OpenLayers.js的js實現(xiàn)方法。建立testgis工程,把OpenLayers.js導(dǎo)入到web中,主要實現(xiàn)代碼如下:

        //地圖和頁面加載函數(shù)

        function init() {

        //設(shè)置地圖縮放范圍和縮放等級,0級比例尺最小

        map=new OpenLayers.Map( $('map'),

        { maxScale:500, minScale:500000, numZoomLevels:5 });

        //加載WMS

        var base=new OpenLayers.Layer.WMS(\"OpenLayers WMS\",

        \"http://localhost:8081/geoserver/wms\",

        {layers: \"topp:states\"});

        map.addLayer(base);

        //加載行政區(qū)圖層,WFS柵格圖像

        var wfs=new OpenLayers.Layer.Vector(\"States\", {

        strategies: [new OpenLayers.Strategy.BBOX()],

        protocol: new OpenLayers.Protocol.WFS({

        //version: \"1.0.0\",

        //srsName: \"EPSG:4326\",

        url: \"http://localhost:8081/geoserver/wfs\",

        featureType: \"states\",

        featureNS: \"http://www.openplans.org/topp\"

        })

        });

        map.addLayer(wfs);

        完成上述步驟,就可以基本實現(xiàn)圖層的顯示、放大等功能,基本功能實現(xiàn)如圖2所示,后續(xù)工作只需添加一些通過控件完成用戶功能需求的代碼即可。

        圖2

        5 結(jié)束語

        WebGIS是地理信息系統(tǒng)GIS在Web上的實現(xiàn),是利用網(wǎng)絡(luò)和Web技術(shù)對傳統(tǒng)地理信息系統(tǒng)的改造和實現(xiàn)。WebGIS正朝著分布式、標準化、大眾化和開放式的方向發(fā)展,在信息技術(shù)迅速發(fā)展的推動下,WebGIS將會給我們帶來一個更加方便、快捷、靈活的信息世界。本文設(shè)計的WebGIS框架是基于開源軟件技術(shù),極大地節(jié)約了經(jīng)濟成本,而且操作簡單方便,當(dāng)然還有一些地方需要改進和優(yōu)化,如用戶與瀏覽器的交互還比傳統(tǒng)的桌面GIS遜色,響應(yīng)速度受寬帶影響等,這些將是下一步需要研究的。

        參考文獻:

        [1] 百度百科.http://baike.baidu.com/view/41463.htm,2012.11.

        [2] 顧進.基于開源的WebGIS平臺研究與地理信息LCD實現(xiàn)[D].中國

        礦業(yè)大學(xué),2007.

        [3] 李新通,何建邦.GIS互操作與OGC規(guī)范[J].地理信息世界,2003.5.

        [4] 徐立新,趙蕾.開源WebGIS 設(shè)計與研究[J].電腦編程技巧與維護,

        2012.8:18-19

        [5] 任品德,牟健,姜峰.基于WebGIS 技術(shù)開發(fā)浮標綜合管理平臺系統(tǒng)

        的研究[J].海洋技術(shù),2011.9:5-8

        [6] 周波,李琦.基于數(shù)字城市系統(tǒng)平臺的GIS Server服務(wù)器研究與設(shè)計[J].

        計算機科學(xué),2005.10:100-102

        [7] 鄔倫,唐大仕,劉瑜.基于Web Service分布式互操作的GIS.地理信息

        科學(xué),2003.19(4):29

        [8] GeoServer,the perfect tool to reduce the unemployment rate[EB/OL].

        [2012-11-10].http://blog.geoserver.org/.

        [9] OpenLayers: Free Maps for the Web[EB/OL].[2012-11-12].

        http://www.openlayers.org/.

        精品久久一区二区三区av制服| 国产欧美日韩一区二区三区 | 日韩人妻无码精品一专区二区三区 | 亚洲成AV人片无码不卡| 国产又大大紧一区二区三区| 精品国产精品三级精品av网址| 亚洲精品久久中文字幕| 欲妇荡岳丰满少妇岳| 911国产在线观看精品| 日本免费精品免费视频| 亚洲a∨无码精品色午夜| 国产精品久久毛片av大全日韩| 四虎成人精品国产一区a| 一区二区三区四区国产亚洲| 日韩一区二区三区精品视频| 小妖精又紧又湿高潮h视频69 | 欧洲亚洲色一区二区色99| 看国产亚洲美女黄色一级片| 亚洲av中文无码乱人伦下载| 精品国产18久久久久久| 人妻系列无码专区久久五月天| 91国产视频自拍在线观看| 久久精品国产69国产精品亚洲| 国产午夜手机精彩视频| 精品国产aⅴ无码一区二区| 91精品国产91久久久久久青草| 人妻av在线一区二区三区| 少妇愉情理伦片丰满丰满| 色欲人妻综合网| 日本成人字幕在线不卡| 中文字幕精品人妻丝袜| 日出白浆视频在线播放| 又爽又黄又无遮挡网站动态图| 成人片99久久精品国产桃花岛| 亚洲精品中文字幕熟女| 青青草精品视频在线播放| a级国产乱理伦片在线播放| 日韩成人免费一级毛片| 亚洲成AV人国产毛片| 三个黑人插一个女的视频| 久久人人爽av亚洲精品|