《一種基于WEBGL技術(shù)的三維場(chǎng)景數(shù)據(jù)格式》由會(huì)員分享,可在線閱讀,更多相關(guān)《一種基于WEBGL技術(shù)的三維場(chǎng)景數(shù)據(jù)格式(4頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、一種基于WEBGL技術(shù)的三維場(chǎng)景數(shù)據(jù)格式
摘要]針對(duì)WEBGL技術(shù)標(biāo)準(zhǔn)、電力GIS系統(tǒng)的特點(diǎn)提出了一種新的三維場(chǎng)景數(shù)據(jù)格式,該格式有以下特點(diǎn):對(duì)web環(huán)境友好、高可擴(kuò)展性、支持多圖層、支持LOD、遵循RESTAPI標(biāo)準(zhǔn)。
[關(guān)鍵詞]對(duì)web環(huán)境友好;高可擴(kuò)展性;LOD;多圖層REST;API
2021
[中圖分類號(hào)]G642.0[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194〔2021〕23-0162-04
0概述
隨著互聯(lián)網(wǎng)的開展、各大瀏覽器產(chǎn)商對(duì)WEBGL技術(shù)標(biāo)準(zhǔn)支持,在WEB瀏覽器上就可以實(shí)現(xiàn)三維場(chǎng)景交互,電力GIS系統(tǒng)也從傳統(tǒng)的三維地圖也從傳統(tǒng)的C/S模式逐步變成B/S模式
2、,本文針對(duì)WEBGL技術(shù)標(biāo)準(zhǔn)、電力GIS系統(tǒng)的特點(diǎn)提出了一種新的三維場(chǎng)景數(shù)據(jù)格式,該格式有以下特點(diǎn):
〔1〕對(duì)WEB環(huán)境友好,傳輸方便、可在瀏覽器端快速解碼、可按需請(qǐng)求資源;
〔2〕可擴(kuò)展,可持續(xù)擴(kuò)展,以便支持新的數(shù)據(jù)類型;
〔3〕支持多圖層;
〔4〕遵循RESTAPI標(biāo)準(zhǔn);
〔5〕LOD。
1數(shù)據(jù)文件包含內(nèi)容
該格式的一份完整的數(shù)據(jù)包含了:元數(shù)據(jù)、圖層、矢量瓦片、地圖要素、符號(hào)等內(nèi)容以下為信息內(nèi)容。
〔1〕該格式的場(chǎng)景數(shù)據(jù)包含的元數(shù)據(jù)通過MetaInfo類來實(shí)現(xiàn),該類型包含屬性如表1所示。
通過以上屬性可以獲取初步獲得該文件包含的場(chǎng)景數(shù)據(jù)信息,版本號(hào)標(biāo)識(shí)當(dāng)前格式的版本,la
3、yers屬性為包含的圖層ID號(hào)數(shù)組,通過該值可以進(jìn)一步獲取對(duì)應(yīng)圖層的信息。
〔2〕場(chǎng)景包含的圖層通過Layer類來實(shí)現(xiàn),包含以下屬性如表2所示。
通過以上屬性可以獲得圖層的根本信息,其中最大、最小比例尺信息用來控制圖層的展示的比例尺范圍,xmin、ymin、xmax、ymax描述了圖層在場(chǎng)景中的矩形邊界,CRS表示邊界坐標(biāo)采用的坐標(biāo)系,TileSize表示圖層瓦片的大小,為一個(gè)正方形區(qū)域,單位為像素,DPI表示分辨率。柵格瓦片是在地圖中最常用的一種瓦片格式,通過切換層級(jí)加載不同的瓦片來實(shí)現(xiàn)LOD,而本文中描述的數(shù)據(jù)格式使用矢量瓦片,矢量瓦片具有這樣的特點(diǎn),地圖縮放時(shí)在客戶端實(shí)時(shí)繪制,不會(huì)隨
4、地圖的縮放而失真,在不同比例尺下都可以使用同一張瓦片。因此本文描述的數(shù)據(jù)格式圖層只有一個(gè)層級(jí),結(jié)合上述的圖層的屬性可以計(jì)算出各個(gè)瓦片的行、列號(hào)。瓦片通過以Tile類來實(shí)現(xiàn)。
〔3〕Tile類包含信息如表3所示。
瓦片在本文中描述的數(shù)據(jù)格式中的主要作用是快速獲取當(dāng)前地圖所需要繪制的要素集合。根據(jù)當(dāng)前地圖邊界信息調(diào)用WFS效勞獲取要素的一個(gè)缺點(diǎn)是,效勞器端需要?jiǎng)討B(tài)的生成要素集合。而矢量瓦片由于確定了邊界可以實(shí)現(xiàn)預(yù)生成、緩存,從而大幅度降低對(duì)效勞器的性能要求。
〔4〕要素通過Feature類來實(shí)現(xiàn),包含信息如表4所示。
Properties屬性值為鍵值對(duì)表,包含了要素的一系列信息,lod屬性
5、描述了要素在不同比例尺下繪制時(shí)需要的信息。詳情見LOD類的設(shè)計(jì),geometry屬性描述要素的地理空間信息。
〔5〕LOD類包含的信息如表5所示。
LOD技術(shù)在地圖繪制中起至關(guān)重要的作用,通常LOD切換分兩種,一種是在不同比例尺下繪制不同的要素,如CITYGML格式將要素進(jìn)行了劃分,要素之間存在父子關(guān)系。另外一種是對(duì)同一要素使用上下模來繪制,本文采用后一種模式。前一種方式也可以通過控制不同圖層的比例尺范圍來實(shí)現(xiàn)。同一個(gè)要素可以根據(jù)上述的LOD列表,在不同比例尺范圍下使用不同的模型來繪制。
〔6〕繪制要素需要的符號(hào)通過Symbol類來實(shí)現(xiàn),該類包含信息如表6所示。
〔7〕符號(hào)需要的材質(zhì)資
6、源、材質(zhì)對(duì)應(yīng)的參數(shù)由Group類實(shí)現(xiàn),該類型包含信息如表7表示。
三維場(chǎng)景中需要的數(shù)據(jù)類型多種多樣,為了具有高擴(kuò)展性符號(hào)通過接口來描述,符號(hào)數(shù)據(jù)通過Javascript函數(shù)統(tǒng)一獲取。在WEB瀏覽器端只要實(shí)現(xiàn)了對(duì)應(yīng)的接口便可以支持新的數(shù)據(jù)類型。在電力GIS系統(tǒng)中,要素的幾何類型主要分為點(diǎn)和線兩種,桿塔、斷路器、變電站等設(shè)備的位置信息通過中心點(diǎn)所在的經(jīng)緯度、高程來描述。架空線、電力電纜、電器連接線的位置信息通過折線坐標(biāo)來描述,繪制地圖所需的符號(hào),對(duì)于不同的要素類型可以有不同的實(shí)現(xiàn)方式。
〔1〕直接模式:通過直接存儲(chǔ)頂點(diǎn)的坐標(biāo),這個(gè)方式適合復(fù)雜要素,如桿塔、開關(guān)等,數(shù)據(jù)可以通過建模軟件制作的模型
7、轉(zhuǎn)換生成。
〔2〕間接模式:通過公式描述如貝塞爾曲線可以使用公式,引用此類型符號(hào)的要素通過調(diào)用函數(shù),從而間接動(dòng)態(tài)生成頂點(diǎn)數(shù)據(jù),這個(gè)方法適合頂點(diǎn)坐標(biāo)規(guī)律性比較強(qiáng)的要素,比方架空線,可以根據(jù)其物理特性、環(huán)境因素生成頂點(diǎn)信息,兩種模式都可以使用上述的接口。
以上各類的關(guān)系如圖1所示。
2數(shù)據(jù)的訪問方法和返回格式
數(shù)據(jù)全部通過RESTAPI獲取,設(shè)定以下訪問方式:
path/root,path為URL路徑,以下相同。
〔1〕path/root/metainfo/獲得場(chǎng)景數(shù)據(jù)的元數(shù)據(jù)按以JSON的格式返回格式如下,
{
name:效勞名稱,
descriptions:描述,
laye
8、rs:[0..n],
}
〔2〕path/root/layer/0....n,通過上一步可以獲得場(chǎng)景包含的所有圖層ID,通過該節(jié)點(diǎn)那么可以訪問對(duì)應(yīng)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,
ymi
9、n:c,
ymax:d,
}
〔3〕path/root/layer/n/row/col/通過上一個(gè)節(jié)點(diǎn)可以根據(jù)需要?jiǎng)討B(tài)請(qǐng)求所需要的切片,其中n表示層級(jí),row為行號(hào),col列號(hào)為非負(fù)整數(shù),以Google開源的protobuf的數(shù)據(jù)格式進(jìn)行編碼,該格式的特點(diǎn)是基于二進(jìn)制,比傳統(tǒng)的XML表示同樣一段內(nèi)容要短小得多,效率比XML和JSON都高。由于protobuf文件格式可讀性差,因此以下以等價(jià)的JOSN格式說明,
{
count:n,//整數(shù)表示包含的要素總量
features:[
{id:m,properties:{“name1〞:〞value1〞,...,“namen〞:〞val
10、uen〞},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/sy
11、mbol/0....n通過上一步的節(jié)點(diǎn)可以獲得切片內(nèi)部包含的要素,進(jìn)而可以獲得繪制要素需要的符號(hào)資源,其中n為符號(hào)ID非負(fù)整數(shù),返回Javascript腳本文件,該文件包含以下格式的函數(shù),
vargettype=function〔〕{........},
vargetPositions=function〔〕{.....},
vargetNormals=function〔〕{....},
vargetUV=function〔〕{....},
vargetGroups=function〔〕{.....}
主要參考文獻(xiàn)
【1】聶曉旭,于鳳芹,欽道理.基于Protobuf的數(shù)據(jù)傳輸協(xié)議[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2021,24〔8〕.
【2】王金峰,姚國(guó)清.三維模型文件中的OBJ格式在OpenGL中的輸入與處理[J].電腦知識(shí)與技術(shù),2021,7〔4〕.
【3】JohnCongote,AlvaroSegura,LuisKabongo,etal.InteractiveVisualizationofVolumetricDatawithWebGLinReal-time[C]//Proceedingsofthe16thInternationalConferenceon3DWebTechnology,NY,2021:137-146.