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

?

一種基于WEBGL技術(shù)的三維場景數(shù)據(jù)格式

2017-02-04 23:27趙志宇呂維新李士濤王艷濤陳仁星
中國管理信息化 2016年23期

趙志宇+呂維新+李士濤+王艷濤+陳仁星

[摘 要] 針對WEBGL技術(shù)規(guī)范、電力GIS系統(tǒng)的特點提出了一種新的三維場景數(shù)據(jù)格式,該格式有以下特點:對web環(huán)境友好、高可擴展性、支持多圖層、支持LOD、遵循REST API規(guī)范。

[關(guān)鍵詞] 對web環(huán)境友好;高可擴展性;LOD;多圖層 REST;API

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2016. 23. 085

[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 1673 - 0194(2016)23- 0162- 04

0 概 述

隨著互聯(lián)網(wǎng)的發(fā)展、各大瀏覽器產(chǎn)商對WEBGL技術(shù)規(guī)范支持,在WEB瀏覽器上就可以實現(xiàn)三維場景交互,電力GIS系統(tǒng)也從傳統(tǒng)的三維地圖也從傳統(tǒng)的C/S模式逐步變成B/S模式,本文針對WEBGL技術(shù)規(guī)范、電力GIS系統(tǒng)的特點提出了一種新的三維場景數(shù)據(jù)格式,該格式有以下特點:

(1)對WEB環(huán)境友好,傳輸方便、可在瀏覽器端快速解碼、可按需請求資源;

(2)可擴展,可持續(xù)擴展,以便支持新的數(shù)據(jù)類型;

(3)支持多圖層;

(4)遵循REST API規(guī)范;

(5)LOD。

1 數(shù)據(jù)文件包含內(nèi)容

該格式的一份完整的數(shù)據(jù)包含了:元數(shù)據(jù)、圖層、矢量瓦片、地圖要素、符號等內(nèi)容以下為信息內(nèi)容。

(1)該格式的場景數(shù)據(jù)包含的元數(shù)據(jù)通過MetaInfo類來實現(xiàn),該類型包含屬性如表1所示。

通過以上屬性可以獲取初步獲得該文件包含的場景數(shù)據(jù)信息,版本號標識當前格式的版本,layers屬性為包含的圖層ID號數(shù)組,通過該值可以進一步獲取對應圖層的信息。

(2)場景包含的圖層通過Layer類來實現(xiàn),包含以下屬性如表2所示。

通過以上屬性可以獲得圖層的基本信息,其中最大、最小比例尺信息用來控制圖層的展示的比例尺范圍,xmin、ymin、xmax、ymax 描述了圖層在場景中的矩形邊界,CRS表示邊界坐標采用的坐標系,TileSize表示圖層瓦片的大小,為一個正方形區(qū)域,單位為像素,DPI表示分辨率。柵格瓦片是在地圖中最常用的一種瓦片格式,通過切換層級加載不同的瓦片來實現(xiàn)LOD,而本文中描述的數(shù)據(jù)格式使用矢量瓦片,矢量瓦片具有這樣的特點,地圖縮放時在客戶端實時繪制,不會隨地圖的縮放而失真,在不同比例尺下都可以使用同一張瓦片。因此本文描述的數(shù)據(jù)格式圖層只有一個層級,結(jié)合上述的圖層的屬性可以計算出各個瓦片的行、列號。瓦片通過以Tile類來實現(xiàn)。

(3)Tile類包含信息如表3所示。

瓦片在本文中描述的數(shù)據(jù)格式中的主要作用是快速獲取當前地圖所需要繪制的要素集合。根據(jù)當前地圖邊界信息調(diào)用WFS服務獲取要素的一個缺點是,服務器端需要動態(tài)的生成要素集合。而矢量瓦片由于確定了邊界可以實現(xiàn)預生成、緩存,從而大幅度降低對服務器的性能要求。

(4)要素通過Feature類來實現(xiàn),包含信息如表4所示。

Properties屬性值為鍵值對表,包含了要素的一系列信息,lod屬性描述了要素在不同比例尺下繪制時需要的信息。詳情見LOD類的設計,geometry屬性描述要素的地理空間信息。

(5)LOD類包含的信息如表5所示。

LOD技術(shù)在地圖繪制中起至關(guān)重要的作用,通常LOD切換分兩種,一種是在不同比例尺下繪制不同的要素,如CITYGML格式將要素進行了劃分,要素之間存在父子關(guān)系。另外一種是對同一要素使用高低模來繪制,本文采用后一種模式。前一種方式也可以通過控制不同圖層的比例尺范圍來實現(xiàn)。同一個要素可以根據(jù)上述的LOD列表,在不同比例尺范圍下使用不同的模型來繪制。

(6)繪制要素需要的符號通過Symbol類來實現(xiàn),該類包含信息如表6所示。

(7)符號需要的材質(zhì)資源、材質(zhì)對應的參數(shù)由Group類實現(xiàn),該類型包含信息如表7表示。

三維場景中需要的數(shù)據(jù)類型多種多樣,為了具有高擴展性符號通過接口來描述,符號數(shù)據(jù)通過Javascript函數(shù)統(tǒng)一獲取。在WEB瀏覽器端只要實現(xiàn)了對應的接口便可以支持新的數(shù)據(jù)類型。在電力GIS系統(tǒng)中,要素的幾何類型主要分為點和線兩種,桿塔、斷路器、變電站等設備的位置信息通過中心點所在的經(jīng)緯度、高程來描述。架空線、電力電纜、電器連接線的位置信息通過折線坐標來描述,繪制地圖所需的符號,對于不同的要素類型可以有不同的實現(xiàn)方式。

(1)直接模式:通過直接存儲頂點的坐標,這個方式適合復雜要素,如桿塔、開關(guān)等,數(shù)據(jù)可以通過建模軟件制作的模型轉(zhuǎn)換生成。

(2)間接模式:通過公式描述如貝塞爾曲線可以使用公式,引用此類型符號的要素通過調(diào)用函數(shù),從而間接動態(tài)生成頂點數(shù)據(jù),這個方法適合頂點坐標規(guī)律性比較強的要素,比如架空線,可以根據(jù)其物理特性、環(huán)境因素生成頂點信息,兩種模式都可以使用上述的接口。

以上各類的關(guān)系如圖1所示。

2 數(shù)據(jù)的訪問方法和返回格式

數(shù)據(jù)全部通過REST API獲取,設定以下訪問方式:

path/root,path為URL路徑,以下相同。

(1)path/root/metainfo/ 獲得場景數(shù)據(jù)的元數(shù)據(jù)按以JSON的格式返回格式如下,

{

name:服務名稱,

descriptions:描述,

layers:[0..n],

Vesion:1.0

}

(2)path/root/layer/0....n,通過上一步可以獲得場景包含的所有圖層ID,通過該節(jié)點則可以訪問對應ID的圖層信息,圖層信息按JSON格式返回,格式如下,

{

Layerid:n,

LayerName:”圖層名稱”,

LayerInfo:”xxx圖層,copyright....”,

Maxscale:N,//數(shù)值

Minscale:M,//數(shù)值

Vesion:1.0,

TileSize:512,

DPI:96,

CRS:EPSG:4326,

Basescale:X,//數(shù)值

xmin:a,

xmax:b,

ymin:c,

ymax:d,

}

(3)path/root/layer/n/row/col/ 通過上一個節(jié)點可以根據(jù)需要動態(tài)請求所需要的切片,其中n表示層級,row為行號,col 列號為非負整數(shù),以Google開源的protobuf 的數(shù)據(jù)格式進行編碼,該格式的特點是基于二進制,比傳統(tǒng)的XML表示同樣一段內(nèi)容要短小得多,效率比XML和JSON都高。由于protobuf文件格式可讀性差,因此以下以等價的JOSN格式說明,

{

count:n,//整數(shù)表示包含的要素總量

features:[

{id:m,properties:{“name1”:”value1”,...,“namen”:”valuen”},geometry:{type:”xxx”,coordinates:xxxx},lod:[

{symbolid:123,fromindex:0,toindex:1024,minSacle:10000,maxSacle:1000,id:1},

{symbolid:456,fromindex:0,toindex:2048,minSacle:1000,maxSacle:100,id:2},

{symbolid:789,fromindex:0,toindex:20480,minSacle:100,maxSacle:50,id:3},....

]}]}

(4)path/root/symbol/0....n 通過上一步的節(jié)點可以獲得切片內(nèi)部包含的要素,進而可以獲得繪制要素需要的符號資源,其中n為符號ID 非負整數(shù),返回Javascript腳本文件,該文件包含以下格式的函數(shù),

var gettype= function(){........},

var getPositions= function(){.....},

var getNormals=function(){....},

var getUV=function(){....},

var getGroups=function(){.....}

主要參考文獻

[1]聶曉旭,于鳳芹,欽道理 .基于Protobuf的數(shù)據(jù)傳輸協(xié)議[J].計算機系統(tǒng)應用,2015,24(8).

[2]王金峰,姚國清.三維模型文件中的OBJ格式在OpenGL中的輸入與處理[J].電腦知識與技術(shù),2011,7(4).

[3]John Congote, Alvaro Segura, Luis Kabongo,et al. Interactive Visualization of Volumetric Data with WebGL in Real-time[C]//Proceedings of the 16th International Conference on 3D Web Technology,NY,2011:137-146.

兴隆县| 顺昌县| 敦化市| 磐安县| 南平市| 怀集县| 扶余县| 嘉荫县| 忻州市| 天水市| 稷山县| 东光县| 桂林市| 双城市| 文登市| 黄大仙区| 勐海县| 黄龙县| 综艺| 兴国县| 浙江省| 砀山县| 萝北县| 秭归县| 扎鲁特旗| 福建省| 北宁市| 怀远县| 孝感市| 龙江县| 康定县| 当涂县| 两当县| 蕲春县| 连山| 锦屏县| 遂溪县| 伊宁县| 枣强县| 左云县| 绥滨县|