999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2018-07-03 04:39:48逯永光測繪出版社北京100045
測繪通報 2018年6期

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

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

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

1 主要技術(shù)概述

1.1 MapServer

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

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

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

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

1.2 Openlayers

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

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

1.3 OGC規(guī)范

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

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

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

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

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

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

本文設(shè)計的地理空間信息網(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ù)庫或文件系統(tǒng);業(yè)務(wù)層包括地圖服務(wù)器MapServer和網(wǎng)絡(luò)服務(wù)器Apache,Apache負責(zé)監(jiān)聽瀏覽器請求并轉(zhuǎn)發(fā)給MapServer CGI程序,由后者對請求進行解析,讀取數(shù)據(jù)層中地理空間數(shù)據(jù)并處理為指定格式,最后經(jīng)由Apache反饋給客戶端進行繪制;顯示層由Web瀏覽器組成,是用戶與WebGIS交互的接口。

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

本文中,在服務(wù)器端采用文件系統(tǒng)存放待發(fā)布的矢量數(shù)據(jù)(SHP格式)和柵格影像,部署MapServer軟件和Apache。客戶端主要基于HTML和OpenLayers開發(fā),實現(xiàn)地圖瀏覽和操作功能。

2.1 MapServer和Apache安裝

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

MS4W軟件包中包含Apache Web服務(wù)器、MapServer和MapScript模塊,通過官網(wǎng)下載之后,將其解壓到硬盤的根目錄下,然后運行其根目錄下的apache_install.bat,即可完成Apache Web服務(wù)器的安裝,至此軟件安裝完成。打開瀏覽器,在地址欄輸入http:∥127.0.0.1/cgi-bin/mapserv.exe,如果返回信息為“No query information to decode.QUERY_STRING is set,but empty.”則表明安裝成功,可以進行下一步的地理空間數(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ù)為TIF格式的遙感影像。

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

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

Web對象主要用于配置網(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對象用于配置服務(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文件配置完成后,將其和對應(yīng)地理空間數(shù)據(jù)、符號文件、字體文件等置于相應(yīng)文件夾,并啟動MapServer和Apache,即可完成地理空間數(shù)據(jù)的網(wǎng)絡(luò)發(fā)布。

2.3 WebGIS客戶端開發(fā)

在客戶端通過使用OpenLayers和HTML進行WebGIS客戶端開發(fā),加載WMS、WFS和WCS數(shù)據(jù)服務(wù),實現(xiàn)了地理空間信息的在線瀏覽和操作功能,部分實現(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ù)建立空間索引,可進一步提高MapServer的處理效率。

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

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

3 結(jié) 語

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

參考文獻:

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

[2] OpenLayers中國社區(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] 高進.基于MapServer的電子海圖服務(wù)系統(tǒng)研究[D].大連:大連海事大學(xué),2013.

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

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

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

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

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

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

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

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

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

主站蜘蛛池模板: 成人在线综合| 国产美女在线免费观看| 成人午夜亚洲影视在线观看| 少妇人妻无码首页| 欧美日韩精品一区二区在线线 | 综合人妻久久一区二区精品| 综合久久五月天| 91亚洲影院| 欧洲在线免费视频| 久久久久亚洲av成人网人人软件| 欧美日韩一区二区三区四区在线观看| 日韩色图在线观看| 亚洲人成电影在线播放| 久久精品亚洲热综合一区二区| 免费一级毛片在线观看| 欧美激情一区二区三区成人| 欧美乱妇高清无乱码免费| 国产午夜福利在线小视频| 国产第一页亚洲| 国产成人三级| 中国精品自拍| 四虎永久免费在线| 日韩福利视频导航| 色婷婷视频在线| 韩日午夜在线资源一区二区| 日韩在线第三页| 日韩色图区| 国产福利不卡视频| 日本草草视频在线观看| 91在线无码精品秘九色APP| 五月激情婷婷综合| 亚洲视频欧美不卡| 日韩av无码DVD| 999精品免费视频| 毛片最新网址| 亚洲一区免费看| 国产成+人+综合+亚洲欧美| 91在线视频福利| 亚洲欧美综合精品久久成人网| 99久久性生片| 国产白浆在线观看| 久久久久中文字幕精品视频| 久久亚洲AⅤ无码精品午夜麻豆| 国产综合无码一区二区色蜜蜜| 国产精品成人免费综合| 精品人妻AV区| 小13箩利洗澡无码视频免费网站| 中文字幕在线一区二区在线| 全部免费毛片免费播放 | 性激烈欧美三级在线播放| 午夜视频日本| 免费国产黄线在线观看| av手机版在线播放| 欧美三級片黃色三級片黃色1| 亚洲欧洲日韩久久狠狠爱 | 国产综合精品一区二区| 成人午夜在线播放| 国产v欧美v日韩v综合精品| 天天躁狠狠躁| 在线观看91精品国产剧情免费| 亚洲欧洲日韩综合色天使| 91成人免费观看在线观看| 国产亚洲精品自在久久不卡| 五月婷婷亚洲综合| 色悠久久综合| 日本成人精品视频| 黄片一区二区三区| 一区二区无码在线视频| 欧美午夜性视频| 久久99精品久久久久纯品| 91精品综合| 国产无码精品在线播放 | 日韩天堂网| 国产高清精品在线91| 九色91在线视频| 精品三级在线| 97人人模人人爽人人喊小说| 日韩123欧美字幕| 亚洲天堂2014| 热思思久久免费视频| 欧美成人午夜视频| 综合久久五月天|