国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Cesium的三維WebGIS研究及開(kāi)發(fā)

2015-05-12 04:20:54朱栩逸苗放
科技創(chuàng)新導(dǎo)報(bào) 2015年34期
關(guān)鍵詞:開(kāi)源瀏覽器框架

朱栩逸 苗放

摘 要:由于傳統(tǒng)二維GIS不能完整地反映三維世界,隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,Web3D技術(shù)與GIS技術(shù)相結(jié)合而成的三維WebGIS也成為了GIS發(fā)展的一個(gè)重要方向。該文在分析基于Web服務(wù)的GIS框架設(shè)計(jì)的基礎(chǔ)上,引入并分析了Cesium開(kāi)源框架與其地形數(shù)據(jù)處理的方法,在此基礎(chǔ)上提出了一種基于Cesium的三維WebGIS開(kāi)發(fā)方案,并通過(guò)開(kāi)發(fā)實(shí)現(xiàn)了標(biāo)注、量測(cè)、查詢等部分GIS基礎(chǔ)功能。

關(guān)鍵詞:Web3D技術(shù) Web服務(wù) Cesium 地形數(shù)據(jù) 三維WebGIS

中圖分類號(hào):TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)12(a)-0009-04

Abstract:As the traditional two-dimensional GIS cannot reflect the three-dimensional world completely, and with the rapid development of computer technology, the three-dimensional WebGIS technology, which combines Web3D technology and GIS technology, becomes an important research direction of GIS. Based on the analysis of GIS framework based on Web services, this paper brings in the Cesium framework and analyzes the method of terrain data processing, then puts forward a program of developing 3D WebGIS based on Cesium which has the GIS functions include marking, measure, query, etc.

Key Words:Web3D technology; Web service; Cesium; Terrain data; 3DWebGIS

傳統(tǒng)的二維GIS具有強(qiáng)大的空間分析與二維數(shù)據(jù)表達(dá)的能力,但是對(duì)處于三維空間中的各種地理對(duì)象全部進(jìn)行向二維平面投影的簡(jiǎn)化處理,導(dǎo)致了第三維方向上的幾何位置信息、空間拓?fù)湫畔⒁约安糠终Z(yǔ)義信息的損失,不能完整地反映客觀世界[1]。隨著人們認(rèn)知水平的提高,二維GIS顯然不能滿足人們對(duì)三維空間的認(rèn)知,于是三維GIS應(yīng)運(yùn)而生。

隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,GIS技術(shù)也被注入了新的活力,Web3D技術(shù)與GIS技術(shù)相結(jié)合而形成的WebGIS已成為GIS發(fā)展的一個(gè)重要方向[2]。WebGL作為新一代Web3D圖形標(biāo)準(zhǔn),其不需要組件加載、渲染效果好、兼容性好等以往技術(shù)無(wú)法比擬的優(yōu)勢(shì)取得了眾多瀏覽器生產(chǎn)商的支持,也為3DWebGIS創(chuàng)造了新的發(fā)展機(jī)遇。

Cesium便是一種輕量級(jí)的開(kāi)源三維WebGIS開(kāi)發(fā)框架,具有成本低、開(kāi)發(fā)簡(jiǎn)單、支持多種地圖格式等特性,并且支持WebGL的硬件加速,使其無(wú)須安裝插件就能夠在支持最新HTML5的瀏覽器上流暢運(yùn)行,非常適合用于動(dòng)態(tài)的數(shù)據(jù)在GIS圖層上的展示。

1 基于Web服務(wù)的GIS設(shè)計(jì)

根據(jù)分層設(shè)計(jì)的原則,采用B/S結(jié)構(gòu),建立符合開(kāi)源GIS規(guī)范的空間地理數(shù)據(jù)和服務(wù)框架。設(shè)計(jì)的體系結(jié)構(gòu)如圖1所示,由表現(xiàn)層、Web服務(wù)層、數(shù)據(jù)層3個(gè)部分構(gòu)成。

數(shù)據(jù)層主要是為數(shù)據(jù)源的文件系統(tǒng)和空間數(shù)據(jù)庫(kù),為上層的Web服務(wù)提供空間數(shù)據(jù)來(lái)源,以及保存Web端對(duì)數(shù)據(jù)各種操作后的數(shù)據(jù)的任務(wù),如數(shù)據(jù)更新、刪除等。

Web服務(wù)層主要負(fù)責(zé)提供空間信息管理與處理的任務(wù),如數(shù)據(jù)存儲(chǔ)、組織管理、分發(fā)、檢索和處理等。

表現(xiàn)層即客戶端所處的層面,主要是瀏覽器應(yīng)用程序,為用戶與系統(tǒng)之間的交互提供可視化的環(huán)境。

2 Cesium

Cesium源自于Analytical Graphics,Inc(AGI)公司開(kāi)發(fā)的一個(gè)虛擬地球項(xiàng)目,是一個(gè)用于在Web瀏覽器創(chuàng)建3D地球和2D地圖的JavaScript庫(kù)[3]。由于其開(kāi)源的特性,官方提供的APIs能夠讓精通JavaScript的開(kāi)發(fā)人員自由添加想要的功能。

Cesium實(shí)現(xiàn)訪問(wèn)地理空間數(shù)據(jù)的方法都符合行業(yè)標(biāo)準(zhǔn),支持的地圖數(shù)據(jù)來(lái)源包括了WMS,WMTS,TMS,Google Maps,Bing Maps和OpenStreetMap等等,也可以用簡(jiǎn)單的圖片作為地圖源。同時(shí)Cesium也支持許多數(shù)據(jù)格式,如XML,GML,JSON,GeoJSON等。

Cesium的框架主要分為4層。

(1)核心(Core):是Cesium的最底層,主要包括一些基本的數(shù)學(xué)原理及模型算法,如矩陣、向量、地圖投影、曲面計(jì)算等。

(2)渲染器(Renderer):提供使用WebGL渲染的方法,完成從計(jì)算機(jī)中三維數(shù)據(jù)表示到二維顯示器平面上可以顯示圖像的轉(zhuǎn)換過(guò)程,經(jīng)過(guò)渲染器渲染后的場(chǎng)景即可展示在用戶面前。

(3)場(chǎng)景(Scene):是建立在核心層與渲染層之上的放置圖形元素的空間。

(4)動(dòng)態(tài)場(chǎng)景(Dynamic Scene):是4層中的最高層,是用來(lái)描述時(shí)間的動(dòng)態(tài)場(chǎng)景元素空間。

3 Cesium地形數(shù)據(jù)

在Cesium中支持的地形數(shù)據(jù)有兩種,分別為STK World Terrain和Small Terrain。

STK World Terrain是高分辨率,基于quantized-mesh的地形。這是一種基于格網(wǎng)的地形數(shù)據(jù),可以利用WebGL中的Shader來(lái)渲染。如圖2所示,STK World Terrain使用了多種數(shù)據(jù)源,在美國(guó)本土使用精度3-30米的National Elevation Dataset(NED)高程數(shù)據(jù),而在歐洲地區(qū)使用EU-CEM高程數(shù)據(jù),精度為30 m,對(duì)于整個(gè)地球則使用GTOPO30高程數(shù)據(jù),精度1 000 m等[3]。可以適應(yīng)不同地區(qū)和不同精度時(shí)的情況。

第二種地形數(shù)據(jù)Small Terrain是一種中等高分辨率,基于heightmap的地形數(shù)據(jù),其在經(jīng)過(guò)處理后加載到系統(tǒng)中效果雖然不如STK World Terrain,但還是基本能還原地球表面的地形。

無(wú)論是STK World Terrain還是Small Terrain數(shù)據(jù),由于其數(shù)據(jù)量的龐大,且其復(fù)雜程度也遠(yuǎn)超計(jì)算機(jī)的處理能力,實(shí)現(xiàn)對(duì)地形數(shù)據(jù)的快速繪制相對(duì)困難。Cesium中對(duì)于地形數(shù)據(jù)采用層次細(xì)節(jié)模型(Level Of Details,LOD)算法[3]。這種算法的核心思想是通過(guò)距離視點(diǎn)的遠(yuǎn)近來(lái)決定地形數(shù)據(jù)細(xì)節(jié)顯示的層次,對(duì)于距離視點(diǎn)較近的區(qū)域采用較高的細(xì)節(jié)層次來(lái)顯示,而對(duì)于距離視點(diǎn)遠(yuǎn)的區(qū)域則采用較低的細(xì)節(jié)層次。簡(jiǎn)化了地形數(shù)據(jù)表面的細(xì)節(jié)從而減少場(chǎng)景的復(fù)雜度,以此來(lái)提高繪制效率。

4 基于Cesium的三維WebGIS開(kāi)發(fā)

該文利用gdal2srtmtiles.py轉(zhuǎn)換工具將GeoTIFF格式的DEM高程數(shù)據(jù)生成*.terrain文件,并配置到webserver下進(jìn)行發(fā)布。在完成對(duì)地形瓦片數(shù)據(jù)的處理及發(fā)布后即可對(duì)Cesium進(jìn)行三維WebGIS的開(kāi)發(fā)。

4.1 地圖數(shù)據(jù)的加載

對(duì)于地圖數(shù)據(jù)的加載,主要用到Cesium中的Viewer類,CesiumTerrainProvider類以及自定義的加載影像數(shù)據(jù)的WMTSImageryProvider類,分別為建立地圖容器,地形數(shù)據(jù)調(diào)用及地圖數(shù)據(jù)調(diào)用。

//定義WMTSImageryProvider類

var WMTSImageryProvider = function() {

var defaultCredit = new Cesium.Credit('WMTS');

description = Cesium.defaultValue(description, {});

this._tilingScheme = new Cesium.WebMercatorTilingScheme({

numberOfLevelZeroTilesX: 1,

numberOfLevelZeroTilesY: 1

});

this._fileExtension = Cesium.defaultValue(description.fileExtension, 'png');

this._tileDiscardPolicy = description.tileDiscardPolicy;

this.baseurl = urlformat;

this.needaddone=addone;

var credit = Cesium.defaultValue(description.credit, defaultCredit);

if (typeof credit === 'string') {

credit = new Cesium.Credit(credit);

}

this._credit = credit;

};

//處理請(qǐng)求處理影像瓦片數(shù)據(jù)

WMTSImageryProvider.prototype.requestImage = function (x, y, level) {

if (this.needaddone)

{ x +=1; y += 1; level += 1; }

var url = this.baseurl.replace("{x}", x);

url = url.replace("{y}", y);

url = url.replace("{z}", level);

return Cesium.ImageryProvider.loadImage(this, url);

};

//加載地形及影像數(shù)據(jù)

var viewer = new Cesium.Viewer('cesiumContainer', {

terrainProvider: new new Cesium.CesiumTerrainProvider({

url : '//localhost:8800/test/terrain'

}),

imageryProvider:new Cesium.WMTSImageryProvider({

url:'//localhost::2000/getImage?x={x}&y={y}&z={z}'

})

});

4.2 簡(jiǎn)單功能實(shí)現(xiàn)

4.2.1 標(biāo)注及畫(huà)線功能

標(biāo)注與劃線功能是GIS系統(tǒng)中的最基礎(chǔ)功能,通過(guò)Cesium中的entities類來(lái)實(shí)現(xiàn)。用戶可以在地圖上對(duì)點(diǎn)進(jìn)行標(biāo)注,并通過(guò)貼合地形的畫(huà)線功能做到三維數(shù)據(jù)的展示,如圖4所示。

4.2.2 量測(cè)功能

用戶能通過(guò)量測(cè)功能進(jìn)行對(duì)地圖上繪圖線段與多邊形面積的量測(cè),即一種空間面積量測(cè)的功能。通過(guò)CesiumMath類中封裝好的方法即可實(shí)現(xiàn)。

4.2.3 查詢及定位功能

用戶提供查詢條件,就能方便的查詢到興趣點(diǎn)的信息,并能在地圖上進(jìn)行定位,也能通過(guò)坐標(biāo)進(jìn)行定位查詢。通過(guò)類Cesium.Cartesian3中fromDegrees方法對(duì)經(jīng)緯度坐標(biāo)進(jìn)行轉(zhuǎn)換,并用flyTo方法進(jìn)行定位。

5 結(jié)語(yǔ)

隨著地理信息網(wǎng)絡(luò)服務(wù)、虛擬現(xiàn)實(shí)技術(shù)、空間信息可視化技術(shù)、GIS技術(shù)的不斷發(fā)展,構(gòu)建三維的WebGIS可視化平臺(tái)也成為了GIS發(fā)展中關(guān)鍵的一環(huán)。該文分析基于Web服務(wù)的GIS框架,討論了Cesium框架與Cesium下地形數(shù)據(jù)處理方法,提出了開(kāi)源三維GIS——Cesium的開(kāi)發(fā)方案,并實(shí)現(xiàn)了WebGIS系統(tǒng)中的部分基本功能。

參考文獻(xiàn)

[1] 肖樂(lè)斌.基于柵格框架的三維GIS集成數(shù)據(jù)模型與空間分析研究[D].北京:中國(guó)科學(xué)院地理研究所,1999.

[2] 王德生.基于HTML5和WebGL的三維WebGIS系統(tǒng)構(gòu)建及應(yīng)用[D].福州:福建師范大學(xué),2014.

[3] Cesium.An open-source JavaScript library for

world-class 3D globes and maps [EB/OL].http://cesiumjs.org.

[4] 楊鵬,鄒時(shí)林.基于OpenLayers的WebGIS客戶端的研發(fā)[J].測(cè)繪與空間地理信息,2012,35(3):131-133.

[5] 張令奎,張小靜,高凱.開(kāi)源地理信息網(wǎng)絡(luò)服務(wù)平臺(tái)構(gòu)建[J].測(cè)繪與空間地理信息,2015,38(1):181-184.

猜你喜歡
開(kāi)源瀏覽器框架
框架
廣義框架的不相交性
五毛錢(qián)能買(mǎi)多少頭牛
反瀏覽器指紋追蹤
電子制作(2019年10期)2019-06-17 11:45:14
WTO框架下
法大研究生(2017年1期)2017-04-10 08:55:06
大家說(shuō):開(kāi)源、人工智能及創(chuàng)新
開(kāi)源中國(guó)開(kāi)源世界高峰論壇圓桌會(huì)議縱論開(kāi)源與互聯(lián)網(wǎng)+創(chuàng)新2.0
環(huán)球?yàn)g覽器
再見(jiàn),那些年我們嘲笑過(guò)的IE瀏覽器
開(kāi)源計(jì)算機(jī)輔助翻譯工具研究
澜沧| 英德市| 安塞县| 新巴尔虎左旗| 壤塘县| 吉安县| 安徽省| 祁阳县| 陵川县| 云安县| 阜城县| 淮南市| 博兴县| 弥渡县| 武功县| 循化| 富蕴县| 佳木斯市| 固镇县| 繁峙县| 维西| 澄迈县| 伊川县| 建昌县| 凤庆县| 郴州市| 木兰县| 天津市| 轮台县| 济南市| 曲松县| 讷河市| 麟游县| 青岛市| 略阳县| 鸡西市| 荔浦县| 梓潼县| 阿勒泰市| 环江| 英吉沙县|