• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于MapServer和OpenLayers的地理空間信息網(wǎng)絡(luò)發(fā)布方案

      2018-07-03 04:39:48逯永光測(cè)繪出版社北京100045
      測(cè)繪通報(bào) 2018年6期
      關(guān)鍵詞:空間信息空間數(shù)據(jù)圖層

      逯永光(測(cè)繪出版社,北京 100045)

      20世紀(jì)90年代,隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展及人們對(duì)地理空間信息需求的不斷增加,進(jìn)而兩者結(jié)合產(chǎn)生了WebGIS技術(shù),這使得地理空間信息網(wǎng)絡(luò)共享成為可能。自WebGIS技術(shù)出現(xiàn)以來(lái),在互聯(lián)網(wǎng)技術(shù)的不斷推動(dòng)下,WebGIS技術(shù)獲得了飛速發(fā)展。很多GIS廠商和組織推出了各自的WebGIS產(chǎn)品,主要分為商業(yè)軟件和開(kāi)源軟件。其中,商業(yè)軟件主要有ArcGIS Server、SuperMap iServer、MapGIS Server等,開(kāi)源軟件中主要有GeoServer、MapServer等。一般來(lái)說(shuō),商業(yè)軟件功能較為齊全,編輯操作頁(yè)面友好,有完善的售后支持服務(wù),需要付費(fèi)使用,利用其開(kāi)發(fā)應(yīng)用系統(tǒng)的成本很高。開(kāi)源軟件主要由各種公益組織負(fù)責(zé)開(kāi)發(fā)維護(hù),不定時(shí)地補(bǔ)充其功能,利用其開(kāi)發(fā)應(yīng)用系統(tǒng),難度一般較商業(yè)軟件高,需要結(jié)合其他軟件,但是成本相對(duì)較低。

      目前,在國(guó)內(nèi),開(kāi)源軟件主要在科研院所和高校中應(yīng)用較多,不僅是因?yàn)槠淇梢悦赓M(fèi)使用和分發(fā),而且主流的開(kāi)源軟件功能也很齊全,配合其他配套軟件,可以滿足一定的科研需求。本文主要對(duì)一種基于MapServer和OpenLayers的地理空間信息網(wǎng)絡(luò)發(fā)布方案進(jìn)行了論述,并給出了一些優(yōu)化建議。

      1 主要技術(shù)概述

      1.1 MapServer

      MapServer采用C語(yǔ)言編寫(xiě),起源于20世紀(jì)90年代中期美國(guó)明尼蘇達(dá)大學(xué)和NASA的一個(gè)合作項(xiàng)目——ForNet,用于在Web上發(fā)布地理空間數(shù)據(jù)和實(shí)現(xiàn)交互式地圖應(yīng)用,可支持所有主流的操作系統(tǒng),包括Windows、Linux等。

      MapServer提供了2種工作模式:CGI和MapScript,一般選用CGI模式進(jìn)行應(yīng)用系統(tǒng)開(kāi)發(fā)。當(dāng)客戶端發(fā)送數(shù)據(jù)請(qǐng)求時(shí),服務(wù)器端CGI程序基于Mapfile文件實(shí)時(shí)讀取和處理地理空間數(shù)據(jù),并將處理結(jié)果返回到客戶端顯示。系統(tǒng)整合了GDAL、OGR、Pro4j等開(kāi)源庫(kù),通過(guò)Pro4j庫(kù)進(jìn)行實(shí)時(shí)投影變換,支持Oracle Spatial、PostgreSQL、SHP、TIF等多種空間數(shù)據(jù)格式,在客戶端可通過(guò)OpenLayers等對(duì)返回的地理空間數(shù)據(jù)進(jìn)行表達(dá)和繪圖,并且遵循OGC規(guī)范,支持WMS、WFS、WFS-T、WCS、WPS等操作。

      Mapfile文件是MapServer應(yīng)用系統(tǒng)的核心,其對(duì)象層次組織結(jié)構(gòu)如圖1所示。Map對(duì)象是Mapfile文件的根節(jié)點(diǎn),包含其他所有的對(duì)象,是應(yīng)用級(jí)的參數(shù),主要負(fù)責(zé)地圖空間范圍、坐標(biāo)單位、字體文件、符號(hào)文件、空間數(shù)據(jù)路徑等的設(shè)置。二級(jí)子節(jié)點(diǎn)中,Outputformat對(duì)象用來(lái)設(shè)置地圖輸出格式,Reference對(duì)象用來(lái)設(shè)置鷹眼圖,Legend對(duì)象用來(lái)設(shè)置地圖圖例,Scalebar對(duì)象用來(lái)設(shè)置地圖比例尺,Querymap對(duì)象用來(lái)定義查詢結(jié)果的渲染方式。Projection對(duì)象用來(lái)定義地圖坐標(biāo)系,Symbol對(duì)象用來(lái)設(shè)置地圖使用符號(hào)。Web對(duì)象用來(lái)定義一個(gè)Web接口運(yùn)行時(shí)的參數(shù),如臨時(shí)圖像存放路徑、查詢?yōu)榭栈蚴r(shí)返回值、最小最大縮放比例、Metadata等,其中Metadata在配置OGC服務(wù)時(shí)需要使用。Layer對(duì)象是指地圖所包含的圖層,圖層在地圖上顯示的順序?yàn)榈剐?第一個(gè)圖層在最下面,最后一個(gè)圖層在最上面),具體設(shè)置圖層元數(shù)據(jù)、比例尺、數(shù)據(jù)類型、數(shù)據(jù)路徑、投影、對(duì)應(yīng)主題、標(biāo)簽等。一個(gè)Mapfile文件最多可以包含100圖層,可滿足絕大多數(shù)應(yīng)用需要。

      圖1 Mapfile文件對(duì)象組織結(jié)構(gòu)

      1.2 Openlayers

      Openlayers是目前一個(gè)主流的用于WebGIS客戶端開(kāi)發(fā)的JavaScript包,用于實(shí)現(xiàn)標(biāo)準(zhǔn)格式發(fā)布的地圖數(shù)據(jù)訪問(wèn),其可以支持的地圖格式包括ArcGIS地圖、Bing地圖、Google地圖、OpenStreetMap、WorldWind、WMS、WFS、WCS及用戶自定義地圖等,可以結(jié)合MapServer實(shí)現(xiàn)輕量級(jí)的WebGIS系統(tǒng)。

      OpenLayers代碼一般嵌在HTML代碼中,除了在代碼中添加已有控件即可實(shí)現(xiàn)的鼠標(biāo)拖動(dòng)、要素選取、量測(cè)、放大縮小、滾輪縮放、鷹眼圖等操作功能外,基于Prototype.js還可實(shí)現(xiàn)地圖瀏覽的Ajax效果,或?qū)σ延械牟僮骱蛿?shù)據(jù)類型進(jìn)行擴(kuò)展,為系統(tǒng)開(kāi)發(fā)更多的功能,如自定義查詢結(jié)果顯示方式、添加網(wǎng)絡(luò)處理服務(wù)(WPS)接口等。OpenLayers常見(jiàn)功能控件具體見(jiàn)表1。

      1.3 OGC規(guī)范

      開(kāi)放地理空間信息聯(lián)盟(Open Geospatial Consortium,OGC)是一個(gè)公益性的國(guó)際標(biāo)準(zhǔn)組織,它基于XML規(guī)范制定了數(shù)據(jù)和服務(wù)的一系列標(biāo)準(zhǔn),如WMS、WFS、WCS、GML等,目前已被絕大多數(shù)WebGIS軟件所支持,成為多源跨平臺(tái)實(shí)現(xiàn)地理空間信息網(wǎng)絡(luò)共享的重要方式之一。

      表1 OpenLayers常見(jiàn)控件及實(shí)現(xiàn)功能

      WMS(web map service)規(guī)范主要包含以下3個(gè)操作:GetCapabitities操作可返回服務(wù)級(jí)元數(shù)據(jù);GetMap操作返回一幅地圖圖像,其坐標(biāo)系和圖像大小等參數(shù)通過(guò)HTTP請(qǐng)求傳入確定,也可以通過(guò)服務(wù)器端配置文件確定;GetFeatureInfo操作返回在地圖上指定位置處的要素信息。

      WFS(web feature service)規(guī)范支持對(duì)地理要素的插入、更新、刪除等,對(duì)應(yīng)于桌面版GIS軟件中的查詢功能,包括空間查詢、屬性查詢,以及基于空間關(guān)系和屬性域的共同查詢。WFS主要操作包括GetCapabilities、DescribeFeatureType、GetFeature等。其中,GetCapabilities操作可返回服務(wù)級(jí)元數(shù)據(jù);DescribeFeatureType操作返回選中要素結(jié)構(gòu),以便客戶端進(jìn)行查詢和其他操作;GetFeature操作可根據(jù)查詢條件返回一個(gè)GML數(shù)據(jù)文檔,該文檔可以被客戶端代碼解析和表達(dá)。

      WCS(web coverage service)規(guī)范主要針對(duì)空間影像數(shù)據(jù),主要包含以下3個(gè)操作:GetCapabilities、GetCoverage和DescribeCoverageType。GetCapabilities操作可返回服務(wù)級(jí)元數(shù)據(jù);GetCoverage操作根據(jù)條件返回指定柵格數(shù)據(jù);DescribeCoverageType操作可獲取某一個(gè)柵格數(shù)據(jù)圖層的描述信息。

      2 地理空間數(shù)據(jù)網(wǎng)絡(luò)發(fā)布實(shí)現(xiàn)

      本文設(shè)計(jì)的地理空間信息網(wǎng)絡(luò)發(fā)布系統(tǒng)框架如圖2所示,系統(tǒng)采用3層體系結(jié)構(gòu):數(shù)據(jù)層、業(yè)務(wù)層、顯示層。其中,數(shù)據(jù)層主要存放系統(tǒng)所需的地理空間數(shù)據(jù),可以選用空間數(shù)據(jù)庫(kù)或文件系統(tǒng);業(yè)務(wù)層包括地圖服務(wù)器MapServer和網(wǎng)絡(luò)服務(wù)器Apache,Apache負(fù)責(zé)監(jiān)聽(tīng)瀏覽器請(qǐng)求并轉(zhuǎn)發(fā)給MapServer CGI程序,由后者對(duì)請(qǐng)求進(jìn)行解析,讀取數(shù)據(jù)層中地理空間數(shù)據(jù)并處理為指定格式,最后經(jīng)由Apache反饋給客戶端進(jìn)行繪制;顯示層由Web瀏覽器組成,是用戶與WebGIS交互的接口。

      圖2 發(fā)布方案框架

      本文中,在服務(wù)器端采用文件系統(tǒng)存放待發(fā)布的矢量數(shù)據(jù)(SHP格式)和柵格影像,部署MapServer軟件和Apache??蛻舳酥饕贖TML和OpenLayers開(kāi)發(fā),實(shí)現(xiàn)地圖瀏覽和操作功能。

      2.1 MapServer和Apache安裝

      MapServer安裝方式分為源代碼編譯和二進(jìn)制文件兩種,考慮源代碼編譯的難度較高,本文選擇二進(jìn)制文件安裝方式。MapServer在Windows平臺(tái)下的安裝包有MS4W和OSGeo4W兩種,其中OSGeo4W是一個(gè)軟件合集,除了MapServer之外,還包含GRASS、OpenEV、uDig等數(shù)十種軟件,而MS4W則主要包含MapServer和Apache,可滿足本文需求,故選擇MS4W軟件包進(jìn)行安裝。

      MS4W軟件包中包含Apache Web服務(wù)器、MapServer和MapScript模塊,通過(guò)官網(wǎng)下載之后,將其解壓到硬盤(pán)的根目錄下,然后運(yùn)行其根目錄下的apache_install.bat,即可完成Apache Web服務(wù)器的安裝,至此軟件安裝完成。打開(kāi)瀏覽器,在地址欄輸入http:∥127.0.0.1/cgi-bin/mapserv.exe,如果返回信息為“No query information to decode.QUERY_STRING is set,but empty.”則表明安裝成功,可以進(jìn)行下一步的地理空間數(shù)據(jù)網(wǎng)絡(luò)發(fā)布。

      2.2 地理空間數(shù)據(jù)網(wǎng)絡(luò)發(fā)布

      地理空間數(shù)據(jù)網(wǎng)絡(luò)發(fā)布包括WMS、WFS和WCS,WMS和WFS發(fā)布使用的數(shù)據(jù)為SHP格式的世界地圖,WCS發(fā)布使用的數(shù)據(jù)為T(mén)IF格式的遙感影像。

      首先對(duì)待發(fā)布數(shù)據(jù)進(jìn)行規(guī)范化處理,包括數(shù)據(jù)格式轉(zhuǎn)換、投影轉(zhuǎn)換等。將所有矢量數(shù)據(jù)統(tǒng)一轉(zhuǎn)換為SHP格式數(shù)據(jù),空間坐標(biāo)系為WGS-84。柵格影像使用ERDAS軟件進(jìn)行規(guī)范處理,坐標(biāo)系選擇WGS-84。

      其次需要配置網(wǎng)絡(luò)發(fā)布所需的字體文件、符號(hào)文件及Mapfile文件。字體文件和符號(hào)文件不再贅述,主要基于具體應(yīng)用需求進(jìn)行制作和配置。Mapfile文件配置是網(wǎng)絡(luò)服務(wù)發(fā)布的核心,主要包括Map對(duì)象、Web對(duì)象、Layer對(duì)象、Class對(duì)象等。

      Web對(duì)象主要用于配置網(wǎng)絡(luò)服務(wù)的元數(shù)據(jù),包括WMS、WFS、WCS,部分代碼如下:

      Web

      Metadata

      "wms_title" "worldmap-wms"

      "wms_onlineresource" "http:∥127.0.0.1/cgi-bin/mapserv.exe?"

      "wms_srs" "EPSG:4326"

      "wms_enable_request" "*"

      "wfs_title" "worldmap-wfs"

      "wfs_onlineresource" " http:∥127.0.0.1/cgi-bin/mapserv.exe?"

      "wfs_srs" "EPSG:4326"

      "wfs_abstract" "This text describes the wfs

      service"

      "wfs_enable_request" "*"

      "wcs_onlineresource" " http:∥127.0.0.1/cgi-bin/mapserv.exe?"

      "wcs_enable_request" "*"

      "wcs_label" "tif wcs"

      End

      End

      Layer對(duì)象用于配置服務(wù)發(fā)布所需圖層,包括矢量數(shù)據(jù)圖層和柵格數(shù)據(jù)圖層,部分代碼如下:

      Layer

      Name "worldmap"

      Type polygon

      Data "../data/world"

      Metadata

      "wms_title" "layer01"

      "wms_srs" "EPSG:4326"

      "wfs_title" "layer02"

      "wfs_srs" "EPSG:4326"

      "gml_featureid" "id"

      "wfs_enable_request" "*"

      End

      Class

      Name "world"

      Style

      Color 255 255 255

      Outlinecolor 96 96 96

      Backgroundcolor 45 180 135

      End

      End

      End

      Layer

      name "world_raster"

      Type Raster

      Data "../data/world.tif"

      Metadata

      "wcs_label" "name"

      "wcs_rangeset_name" "my name"

      "wcs_rangeset_label" "my label"

      End

      Projection

      "init=epsg:4326"

      End

      End

      Mapfile文件配置完成后,將其和對(duì)應(yīng)地理空間數(shù)據(jù)、符號(hào)文件、字體文件等置于相應(yīng)文件夾,并啟動(dòng)MapServer和Apache,即可完成地理空間數(shù)據(jù)的網(wǎng)絡(luò)發(fā)布。

      2.3 WebGIS客戶端開(kāi)發(fā)

      在客戶端通過(guò)使用OpenLayers和HTML進(jìn)行WebGIS客戶端開(kāi)發(fā),加載WMS、WFS和WCS數(shù)據(jù)服務(wù),實(shí)現(xiàn)了地理空間信息的在線瀏覽和操作功能,部分實(shí)現(xiàn)代碼如下:

      var map=new OpenLayers.Map(“world_demo”);

      var wmap=new OpenLayers.Layer.WMS(“wworld”,“http:∥127.0.0.1/cgi-bin/mapserv.exe? “,{layers:”worldmap”});

      var wfs_pro=new OpenLayers.Protocol.WFS({version:”1.1.0”,url:”http:∥127.0.0.1/cgi-bin/mapserv.exe?”,featuretype:”worldmap”});

      var vmap=new OpenLayers.Layer.Vector(“vworld”,{strategies:[new OpenLayers.Strategy.Fixed()],protocol:wfs_pro});

      map.addLayer(wmap);

      map.addLayer(vmap);

      map.addControl(new OpenLayers.Control.LayerSwitcher());

      2.4 系統(tǒng)優(yōu)化建議

      (1) 矢量數(shù)據(jù)應(yīng)該盡量選用SHP格式文件。MapServer可以支持多種矢量數(shù)據(jù)格式,但是以SHP格式文件讀取和處理速度較快,并且可以為SHP數(shù)據(jù)建立空間索引,可進(jìn)一步提高M(jìn)apServer的處理效率。

      (2) 引入Kamap或Tilecache的瓦片機(jī)制。WebGIS系統(tǒng)的底圖一般變動(dòng)較小,與MapServer讀取矢量數(shù)據(jù),然后進(jìn)行處理,并將處理結(jié)果返回到客戶端的模式相比,采用瓦片地圖可以省去讀取數(shù)據(jù)和處理數(shù)據(jù)的步驟,將極大地減少客戶端的響應(yīng)時(shí)間。

      (3) 優(yōu)化投影文件。在Mapfile中需要設(shè)置地圖和圖層的投影參數(shù),而MapServer的投影文件由數(shù)千種投影組成,如果每次都掃描整個(gè)文件查找所設(shè)置投影無(wú)疑會(huì)降低處理速度。因此,需要對(duì)投影文件進(jìn)行優(yōu)化,刪除不需要的投影編碼,或?qū)?yīng)用較多的投影編碼的位置提到文件的前部,即可以減少投影參數(shù)的查找時(shí)間。

      3 結(jié) 語(yǔ)

      MapServer是一種應(yīng)用廣泛的開(kāi)源WebGIS軟件,并且其功能在不斷增強(qiáng)。通過(guò)本文對(duì)基于MapServer和OpenLayers的地理空間信息網(wǎng)絡(luò)發(fā)布方案進(jìn)行的論述,筆者認(rèn)為其可以滿足一般的WebGIS開(kāi)發(fā)需求,未來(lái)可考慮在服務(wù)器端引入其他軟件包或在客戶端引入其他JavaScript框架,進(jìn)一步增強(qiáng)應(yīng)用系統(tǒng)的功能,這也是筆者下一步的研究?jī)?nèi)容。

      參考文獻(xiàn):

      [1] OSGeo.MapServer:open source web mapping[EB/OL].[2018-03-06].http:∥www.mapserver.org.

      [2] OpenLayers中國(guó)社區(qū).OpenLayers JavaScript Mapping Library[EB/OL].[2018-03-06].http:∥www.openlayers.cn/cnapi/files/OpenLayers/Layer-js.html.

      [3] 冉祥生.基于MapServer的空間信息發(fā)布技術(shù)研究[D].成都:西南交通大學(xué),2008.

      [4] 高進(jìn).基于MapServer的電子海圖服務(wù)系統(tǒng)研究[D].大連:大連海事大學(xué),2013.

      [5] 李信鵬.基于MapServer的遙感影像發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國(guó)科學(xué)院中國(guó)遙感衛(wèi)星地面站,2007.

      [6] 孫巖松.基于矢量瓦片的Web電子海圖研究[D].大連:大連海事大學(xué),2017.

      [7] 顧穎虹,芮建勛,陳能,等.基于MapServer的WebGIS地圖符號(hào)化研究與實(shí)現(xiàn)[J].上海師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,41(1):56-61.

      [8] 孫偉,馬照亭,張成成,等.一種基于MapServer的KML地理信息網(wǎng)絡(luò)服務(wù)實(shí)現(xiàn)方法[J].測(cè)繪通報(bào),2012(12):53-56.

      [9] 鄭逢斌,元沐南,王棟.基于開(kāi)源WebGIS的遙感數(shù)據(jù)共享方法研究[J].河南大學(xué)學(xué)報(bào)(自然版),2016,46 (4):438-446.

      [10] 趙慧芬.基于MapServer和Openlayer的WebGIS開(kāi)發(fā) [J].測(cè)繪與空間地理信息,2013(9):100-101.

      [11] 張潔.基于OpenLayers3的自然保護(hù)區(qū)規(guī)劃輔助平臺(tái)的實(shí)現(xiàn) [D].上海:華東師范大學(xué),2017.

      [12] 李昕煜.基于JavaScript的WebGIS前端開(kāi)發(fā)及優(yōu)化[D].長(zhǎng)春:吉林大學(xué),2015.

      [13] 張楠,張海燕.基于OpenLayers和TileCache的出行示意圖設(shè)計(jì)[J].山東科學(xué),2011,14(3):69-74.

      猜你喜歡
      空間信息空間數(shù)據(jù)圖層
      結(jié)合多層特征及空間信息蒸餾的醫(yī)學(xué)影像分割
      巧用混合圖層 制作抽象動(dòng)感森林
      《地理空間信息》協(xié)辦單位
      元數(shù)據(jù)驅(qū)動(dòng)的多中心空間數(shù)據(jù)同步方法研究
      圖層法在地理區(qū)域圖讀圖中的應(yīng)用
      淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
      河南科技(2014年6期)2014-04-04 08:00:42
      關(guān)于地理空間信息標(biāo)準(zhǔn)體系
      基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲(chǔ)與組織研究
      Photoshop圖層的解讀
      客戶端空間數(shù)據(jù)緩存策略
      日照市| 峡江县| 府谷县| 永靖县| 明溪县| 朝阳区| 蒙阴县| 会泽县| 修文县| 广河县| 扎兰屯市| 宝丰县| 昌邑市| 阜南县| 河间市| 通化市| 农安县| 鹿泉市| 赤城县| 汨罗市| 岳阳市| 台中县| 加查县| 廉江市| 平江县| 海盐县| 夹江县| 信阳市| 乌兰浩特市| 康定县| 威信县| 纳雍县| 施秉县| 新野县| 高邑县| 西乌珠穆沁旗| 安西县| 康平县| 岳池县| 怀柔区| 井冈山市|