日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

矢量切片_数据粒度均衡的二维矢量瓦片构建方法

發(fā)布時(shí)間:2025/3/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矢量切片_数据粒度均衡的二维矢量瓦片构建方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作 者 信 息

應(yīng) 申1,2,王子豪1,杜志強(qiáng)3,丁火平4, 李翔翔4

(1. 武漢大學(xué) 資源與環(huán)境科學(xué)學(xué)院,湖北 武漢 430079;2. 自然資源部城市國(guó)土資源監(jiān)測(cè)與仿真重點(diǎn)實(shí)驗(yàn)室,廣東 深圳 518034;3. 武漢大學(xué) 測(cè)繪遙感信息工程國(guó)家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430079;4. 航天恒星科技有限公司,北京 100086)

【摘要】針對(duì)二維地圖矢量瓦片數(shù)據(jù)量不均衡造成的Web可視化中矢量數(shù)據(jù)傳輸、渲染效率低的問題,提出了數(shù)據(jù)粒度均衡的矢量瓦片構(gòu)建方法。首先提出了矢量瓦片的粒度定義,并根據(jù)粒度均衡劃分的約束條件和流暢可視化的幀率要求,給出了單個(gè)矢量瓦片粒度大小的計(jì)算方法。在k-d樹算法的基礎(chǔ)上,制定分割線編碼規(guī)則及其不斷繼承與更新機(jī)制提出“父子”關(guān)聯(lián)且粒度均衡的瓦片構(gòu)建方法和“回溯剪枝”算法的瓦片調(diào)度流程。這種數(shù)據(jù)粒度均衡的矢量瓦片可實(shí)現(xiàn)快速網(wǎng)絡(luò)數(shù)據(jù)調(diào)度與可視化,以全國(guó)矢量數(shù)據(jù)為例,從矢量瓦片構(gòu)建耗時(shí)、所占存儲(chǔ)空間以及Web可視化過程中傳輸速率、渲染效率等方面驗(yàn)證和評(píng)估本文方法的效能。

【關(guān)鍵詞】矢量瓦片;粒度均衡;k-d樹;“父子”關(guān)聯(lián)

【中圖分類號(hào)】P208 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1672-1586(2020)04-0066-09

引文格式:應(yīng) 申,王子豪,杜志強(qiáng),等. 數(shù)據(jù)粒度均衡的二維矢量瓦片構(gòu)建方法[J].地理信息世界,2020,27(4):66-74.

正文

0 引 言

隨著當(dāng)今矢量數(shù)據(jù)獲取手段的多樣化,矢量數(shù)據(jù)正朝著大規(guī)模方向發(fā)展。矢量數(shù)據(jù)作為時(shí)空大數(shù)據(jù)平臺(tái)的基礎(chǔ)組成部分,其高效、準(zhǔn)確的可視化對(duì)時(shí)空大數(shù)據(jù)平臺(tái)建設(shè)具有重要的意義。目前大規(guī)模矢量數(shù)據(jù)可視化的主流方法是預(yù)先切割并生成金字塔矢量瓦片文件,在可視化過程中通過與視點(diǎn)位置相關(guān)的瓦片調(diào)度方法實(shí)現(xiàn)多分辨率顯示。但是,現(xiàn)有的矢量瓦片大多采用等面積或等經(jīng)緯度的分割方式(即格網(wǎng)法),由于矢量數(shù)據(jù)空間分布不均衡,導(dǎo)致數(shù)據(jù)粒度劃分的不均衡性,從而造成矢量瓦片構(gòu)建與可視化過程面臨以下3個(gè)問題:①由于某些瓦片數(shù)據(jù)粒度劃分過粗造成單張瓦片數(shù)據(jù)量過大,導(dǎo)致網(wǎng)絡(luò)傳輸過程中的阻塞問題,影響了矢量瓦片的高效傳輸。解決方法中顧及數(shù)據(jù)稠密的矢量瓦片組織方法通過構(gòu)建非平衡四叉樹索引,可解決單張瓦片數(shù)據(jù)量過大造成的傳輸延時(shí)問題。但是由于其沒有改變基于規(guī)則格網(wǎng)的瓦片劃分方式,瓦片之間數(shù)據(jù)量的不均衡導(dǎo)致可視化端解析過程耗時(shí)不同,降低了Web端可視化的效率。②由于粒度劃分的不均衡性,瓦片解析耗時(shí)不均衡,影響瀏覽器渲染效率。基于k-d樹索引模型的稠稀矢量瓦片構(gòu)建方法,可保證瓦片之間數(shù)據(jù)量的均等性。但是,其并未顧及不同級(jí)別瓦片數(shù)據(jù)粒度均衡性以及“父子”瓦片的空間關(guān)聯(lián)性,降低了可視化過程中放大縮小操作時(shí)瓦片的調(diào)度效率。③瓦片總數(shù)量多造成的瓦片構(gòu)建耗時(shí)長(zhǎng)、存儲(chǔ)空間占用大的問題。矢量數(shù)據(jù)并行切片技術(shù)雖在一定程度上縮短了瓦片構(gòu)建的時(shí)間,但并未從根本上解決矢量瓦片數(shù)量龐大造成的瓦片構(gòu)建過程中切片耗時(shí)長(zhǎng)以及存儲(chǔ)空間占用率低的問題。

為此,本文首先提出了矢量瓦片的粒度定義,而后設(shè)計(jì)并實(shí)現(xiàn)了數(shù)據(jù)粒度均衡的矢量瓦片構(gòu)建方法。該方法基于數(shù)據(jù)均衡的二叉樹構(gòu)建矢量瓦片,在單個(gè)瓦片大小滿足粒度約束的條件下,顧及了各瓦片間數(shù)據(jù)粒度的均衡性,從而避免了Web可視化端加載大瓦片文件的等待時(shí)延,提高了瓦片傳輸?shù)乃俾省F浯?#xff0c;在制定一套完整的瓦片編碼規(guī)則的基礎(chǔ)上,設(shè)計(jì)了基于“回溯剪枝”算法的瓦片調(diào)度流程,縮短了可視化時(shí)瓦片查找匹配時(shí)間。最終通過粒度均衡約束的矢量瓦片技術(shù),實(shí)現(xiàn)了瓦片數(shù)據(jù)的快速調(diào)度與可視化。

1 矢量數(shù)據(jù)的粒度均衡性分析

粒是整體的一部分,信息粒化的一種常用方法是劃分,粒化的程度通過粒度來刻畫。矢量瓦片技術(shù)可以視為信息粒化的一種具體應(yīng)用,整套矢量數(shù)據(jù)為一個(gè)整體,而瓦片則稱為粒,矢量數(shù)據(jù)的劃分過程稱為粒化,粒度則為矢量數(shù)據(jù)劃分的程度。

1.1 數(shù)據(jù)粒度對(duì)矢量瓦片的影響

為了方便探討數(shù)據(jù)粒度對(duì)矢量瓦片的影響,在數(shù)據(jù)劃分過程中,有以下定義:給定一個(gè)論域U,U為對(duì)象的非空有限集合,U上的一個(gè)非空子集簇x ={P1,P2,…,Pk}稱為U上的劃分,若Pi滿足式(1)約束,其中Pi稱為劃分x的一個(gè)塊:

若另有一個(gè)劃分y={Q1,Q2,…,Qk},如果?Qi∈y, ?Pj∈x,滿足Qi?Pj,則稱y比x劃分的細(xì),反之x比y劃分的細(xì)。

根據(jù)矢量瓦片原理,矢量瓦片Pi的劃分方式滿足式(1)中對(duì)塊的約束。在矢量數(shù)據(jù)劃分過程中,劃分程度(粒度)的粗細(xì)將直接影響劃分的耗時(shí)以及劃分后占用空間的大小。若數(shù)據(jù)粒度過細(xì),瓦片數(shù)量增多,耗時(shí)增加。隨著碎小瓦片數(shù)量的增加,瓦片整體所占存儲(chǔ)空間逐漸增大,空間占用率逐漸降低;若數(shù)據(jù)粒度過粗,則造成單張瓦片數(shù)據(jù)量過大,瓦片可視化時(shí)易造成傳輸?shù)却?#xff0c;使得Web可視化端的流暢性受到嚴(yán)重影響。因此,矢量瓦片的劃分過程需要基于一個(gè)合適的粒度。

在Web端可視化過程中,傳輸數(shù)據(jù)的均衡性將直接影響瀏覽器渲染的效率。數(shù)據(jù)粒度越均衡,瀏覽器端解析瓦片的耗時(shí)差距越小,渲染的效率越高。所以,在瓦片構(gòu)建過程中,在選擇合適粒度的基礎(chǔ)上還應(yīng)盡可能保證粒度的均衡性。

1.2 數(shù)據(jù)粒度的構(gòu)建與計(jì)算

粒度計(jì)算的基本問題包括兩個(gè)主要的方面,一是如何構(gòu)建粒度,二是如何利用粒度去進(jìn)行計(jì)算。

由于矢量瓦片中只存儲(chǔ)了矢量數(shù)據(jù)的屬性信息與幾何信息,其屬性信息相較于幾何信息所占存儲(chǔ)空間通常可忽略不計(jì)。因此,在刻畫矢量瓦片的粒度時(shí),通常采用矢量數(shù)據(jù)的幾何信息描述矢量瓦片劃分粒度的粗細(xì)。在矢量瓦片數(shù)據(jù)粒度的構(gòu)建過程中,通常用坐標(biāo)點(diǎn)的數(shù)量描述瓦片劃分粒度的粗細(xì)。對(duì)于同一個(gè)矢量數(shù)據(jù)集合U,數(shù)據(jù)劃分粒度越細(xì),瓦片的數(shù)量越多,單張瓦片坐標(biāo)點(diǎn)的數(shù)量越少。

根據(jù)人眼的視覺暫留特性,如果要讓人的眼睛看到連續(xù)的動(dòng)畫或電影,畫面刷新頻率理論上應(yīng)該達(dá)到24幀/s。在矢量瓦片可視化過程中,為了接近甚至達(dá)到動(dòng)畫的流暢性,除去矢量繪制等其他操作的耗時(shí),估算單張瓦片的傳輸時(shí)間應(yīng)維持在7~10 ms。根據(jù)不同的網(wǎng)絡(luò)傳輸帶寬,即可粗略估算出單個(gè)瓦片的最優(yōu)存儲(chǔ)大小范圍。矢量數(shù)據(jù)的坐標(biāo)對(duì)通常由一對(duì)經(jīng)緯度數(shù)值組成,經(jīng)緯度一般采用浮點(diǎn)類型進(jìn)行存儲(chǔ),其根據(jù)數(shù)據(jù)精度不同所占存儲(chǔ)空間不同。利用單張瓦片的存儲(chǔ)大小與單個(gè)坐標(biāo)對(duì)的存儲(chǔ)空間相比,即可計(jì)算出每張瓦片所包含的坐標(biāo)對(duì)的數(shù)量,以此來進(jìn)行粒度的計(jì)算,具體的計(jì)算公式如下:

式中,num為單張瓦片所包含坐標(biāo)點(diǎn)數(shù)量閾值;Bandwidth為帶寬大小,單位為Mbps;t為單個(gè)瓦片的傳輸時(shí)間,單位為s;space為單個(gè)坐標(biāo)點(diǎn)所占存儲(chǔ)空間大小,其值的大小與數(shù)據(jù)的精度有關(guān),單位為字節(jié)。根據(jù)上式,即可將瓦片粒度計(jì)算為方便統(tǒng)計(jì)的坐標(biāo)點(diǎn)數(shù)量,為后面瓦片的構(gòu)建提供了重要的參考準(zhǔn)則。

2 粒度均衡約束的矢量瓦片構(gòu)建方法

2.1 矢量數(shù)據(jù)預(yù)處理

本文按照矢量瓦片金字塔結(jié)構(gòu)對(duì)矢量數(shù)據(jù)進(jìn)行制圖綜合與分級(jí)組織,較高級(jí)別的數(shù)據(jù)組織在金字塔結(jié)構(gòu)的較低層,并選取歸一化的Web墨卡托坐標(biāo)系對(duì)坐標(biāo)進(jìn)行數(shù)據(jù)坐標(biāo)轉(zhuǎn)換,具體轉(zhuǎn)換公式如式(3)。

式中,lon與lat分別為WGS-1984坐標(biāo)系下的經(jīng)緯度坐標(biāo),x與y分別為投影后的橫、縱坐標(biāo)。投影變換后的坐標(biāo)為浮點(diǎn)數(shù),其精度與數(shù)據(jù)的分辨率相關(guān)。赤道的周長(zhǎng)約為40 000 km,即保留小數(shù)點(diǎn)后8位,其分辨率可精確到米級(jí)。根據(jù)Web墨卡托投影特點(diǎn),經(jīng)過投影與歸一化后,全球矢量數(shù)據(jù)橫縱坐標(biāo)統(tǒng)一規(guī)范到[0,1]范圍。

2.2 瓦片構(gòu)建過程中分割線的計(jì)算與存儲(chǔ)

矢量瓦片的粒度均衡的約束主要包括兩個(gè)方面:第一,單張瓦片的數(shù)據(jù)粒度粗細(xì)應(yīng)符合公式(2)計(jì)算的閾值大小num;第二,各瓦片間的數(shù)據(jù)粒度應(yīng)粗細(xì)均勻。

根據(jù)粒度均衡的約束條件,本文基于k-d樹算法,計(jì)算分割線并對(duì)數(shù)據(jù)進(jìn)行劃分。計(jì)算分割線前,先將矢量數(shù)據(jù)構(gòu)建為離散點(diǎn)集。由于離散點(diǎn)集數(shù)據(jù)在x、y坐標(biāo)方向分布的離散程度不同,為了使初始劃分后的數(shù)據(jù)更加集中,應(yīng)比較數(shù)據(jù)坐標(biāo)在x、y方向的方差大小,方差越大分布越分散,方差越小分布越集中。因此,選擇方差大坐標(biāo)軸方向的作為初始劃分方向,并在兩個(gè)方向上交替劃分。最后,依據(jù)數(shù)據(jù)二分思想,計(jì)算矢量數(shù)據(jù)劃分的分割線,對(duì)離散點(diǎn)集進(jìn)行遞歸均等二分,直到劃分后的數(shù)據(jù)坐標(biāo)數(shù)量小于閾值num為止。

圖1a為某一級(jí)別的瓦片劃分示意圖,第一步采用x=0.4分割線劃分?jǐn)?shù)據(jù),對(duì)應(yīng)分割線存儲(chǔ)到圖1b二叉樹第一層;第二步,在x=0.4分割線的左右分別采用y=0.4與y=0.6劃分?jǐn)?shù)據(jù),對(duì)應(yīng)把y=0.4與y=0.6分割線,存儲(chǔ)到x =0.4的左右節(jié)點(diǎn)中作為二叉樹的第二層。以此類推,數(shù)據(jù)劃分完畢后,即可得到圖1b所示的二叉樹存儲(chǔ)結(jié)構(gòu)。由于采用均等二分的劃分策略,每次劃分過程保證了數(shù)據(jù)粒度的均衡性。

圖1 分割線的存儲(chǔ)方法

Fig.1 The method of storing partition lines

2.3 “父子”關(guān)聯(lián)的瓦片構(gòu)建方法

在顧及數(shù)據(jù)稠稀的瓦片構(gòu)建方法中,目前已有直接采用k-d樹方法進(jìn)行數(shù)據(jù)劃分的方法,在一定程度上顧及了數(shù)據(jù)粒度的均衡性。但是,其并未討論“父子”瓦片的關(guān)聯(lián)關(guān)系。若每一級(jí)數(shù)據(jù)均完全按照數(shù)據(jù)二分原則劃分,由于不同級(jí)別數(shù)據(jù)分布不同,將會(huì)導(dǎo)致“父子”瓦片之間喪失了邊界一致的空間繼承關(guān)系。其構(gòu)建出的松散瓦片結(jié)構(gòu)會(huì)延長(zhǎng)數(shù)據(jù)劃分以及瓦片查找耗時(shí),不利于Web端的高效可視化。

本文提出了顧及“父子”空間關(guān)聯(lián)的瓦片構(gòu)建方法,在構(gòu)建高級(jí)別瓦片時(shí),需在低級(jí)別瓦片分割線的基礎(chǔ)上繼續(xù)劃分。因此,每當(dāng)計(jì)算分割線后,均采用如圖1b所示的二叉樹結(jié)構(gòu)對(duì)分割線進(jìn)行存儲(chǔ)。通過各級(jí)瓦片對(duì)分割線的繼承,既縮短了瓦片構(gòu)建過程中重復(fù)計(jì)算分割線帶來的耗時(shí),又提升了Web端可視化時(shí)放大縮小的交互效率。具體的構(gòu)建方法流程圖如圖2所示。

如圖2所示,將矢量數(shù)據(jù)按照制圖綜合規(guī)則組織為m~n級(jí)數(shù)據(jù),m為地圖最低級(jí)別(默認(rèn)為0級(jí)),n由矢量數(shù)據(jù)分辨率確定,數(shù)據(jù)分辨率越高,n的值越大,按照目前電子地圖規(guī)范,m級(jí)的分辨率對(duì)應(yīng)地圖15級(jí)。矢量數(shù)據(jù)組織完成后,對(duì)每一級(jí)數(shù)據(jù)構(gòu)建離散點(diǎn)集。在顧及數(shù)據(jù)粒度均衡性的約束下,對(duì)點(diǎn)集數(shù)據(jù)遞歸均衡二分,直到葉子節(jié)點(diǎn)的坐標(biāo)數(shù)量滿足閾值num為止。然后緩存分割線,按分割線對(duì)各級(jí)矢量數(shù)據(jù)進(jìn)行劃分并存為矢量文件。

圖2 父子關(guān)聯(lián)的瓦片構(gòu)建方法流程圖

Fig.2 Flow chart of “parent-child” tile construction

在對(duì)m級(jí)數(shù)據(jù)劃分時(shí),構(gòu)建一個(gè)如圖1b所示的二叉樹存儲(chǔ)分割線。在對(duì)m+1級(jí)數(shù)據(jù)劃分時(shí),為了保證“父子”瓦片的關(guān)聯(lián)性,先繼承分割線并按二叉樹結(jié)構(gòu)對(duì)m+1級(jí)離散點(diǎn)集劃分,再對(duì)葉子節(jié)點(diǎn)中的坐標(biāo)數(shù)量進(jìn)行統(tǒng)計(jì),并對(duì)超過閾值num的繼續(xù)遞歸劃分并更新二叉樹分割線存儲(chǔ)結(jié)構(gòu),直到葉子節(jié)點(diǎn)的坐標(biāo)數(shù)量滿足閾值num為止。此時(shí),每個(gè)瓦片坐標(biāo)點(diǎn)的數(shù)量Ci滿足式(4)的約束,由此得出,采用本文方法所構(gòu)建的瓦片粒度是均衡的。

圖3為中國(guó)范圍的矢量數(shù)據(jù)在4、5兩級(jí)進(jìn)行劃分的示意圖,其中5級(jí)瓦片先繼承4級(jí)瓦片分割線后繼續(xù)劃分。

圖3 數(shù)據(jù)粒度均衡的矢量瓦片劃分過程示意圖

Fig.3 Schematic diagram of vector tile partition process with balanced data granularity

如圖3所示,數(shù)據(jù)粒度均衡的瓦片劃分方法,對(duì)于數(shù)據(jù)密集的地區(qū),瓦片數(shù)量多,保證了各級(jí)瓦片文件數(shù)據(jù)粒度的均衡性,有利于提升瓦片傳輸性能。同時(shí),通過繼承分割線的方法,“父子”瓦片相互關(guān)聯(lián),提升了瓦片構(gòu)建以及瓦片可視化的效率。

3 矢量瓦片組織方法與調(diào)度流程

3.1 適應(yīng)高效調(diào)度的瓦片編碼方法

矢量瓦片中使用較多的是Mapbox設(shè)計(jì)的命名規(guī)范。數(shù)據(jù)粒度均衡的劃分方式使得分割線的位置隨著數(shù)據(jù)分布的變化而不斷變化,分割線需特定存儲(chǔ)。由于Mapbox的瓦片編碼方式僅與位置相關(guān),不適合表達(dá)多個(gè)不同位置的分割線。

針對(duì)本文瓦片劃分后分割線如何存儲(chǔ)的問題,有兩種解決方式。第一種是將分割線位置等信息寫在一個(gè)與瓦片平行的獨(dú)立文件中,依照索引文件可定位所有瓦片位置。第二種是將分割線信息直接“顯式”的設(shè)計(jì)于瓦片編碼中,不需要對(duì)索引文件進(jìn)行存儲(chǔ)。在矢量瓦片應(yīng)用過程中,隨著數(shù)據(jù)量的增大,索引也將變得越來越復(fù)雜。若用第一種方式存儲(chǔ)瓦片,帶來索引文件過大而造成的傳輸時(shí)延以及可視化時(shí)Web端占用內(nèi)存空間過大的問題,不利于Web端高效的可視化。為了瓦片能夠適應(yīng)高效可視化,本文采用第二種方式,將瓦片的分割線顯示的組織于瓦片編碼中,瓦片編碼直接用于文件夾或瓦片文件的命名,具體編碼方式如圖4所示。

圖4 瓦片編碼定義

Fig.4 Defifi nition of vector tile code

為了準(zhǔn)確定位瓦片位置,除了存儲(chǔ)分割線的位置,還應(yīng)存儲(chǔ)劃分方向以及瓦片相對(duì)分割線的位置關(guān)系。瓦片編碼由2+u位數(shù)字構(gòu)成,u為Web墨卡托坐標(biāo)系下坐標(biāo)小數(shù)點(diǎn)后的位數(shù)。圖4所示的示例數(shù)據(jù)分辨率為百米級(jí),轉(zhuǎn)換為Web墨卡托坐標(biāo)系坐標(biāo)保留到小數(shù)點(diǎn)后6位。編碼的第一位數(shù)字表示瓦片劃分的方向,若為“0”則平行于y軸進(jìn)行劃分,若為“1”則平行于x軸劃分。第二位數(shù)字表示該瓦片位于分割線的左右(上下)位置,若為“0”則表示該瓦片位于分割線左(上)側(cè),若為“1”則表示位于分割線右(下)側(cè)。編碼中最后u位數(shù)字表示瓦片的分割線位置,在歸一化的Web墨卡托坐標(biāo)系下,其x、y坐標(biāo)范圍均為[0,1]。通過適應(yīng)高效調(diào)度的編碼后,每個(gè)節(jié)點(diǎn)的名稱即為索引,不需對(duì)索引文件進(jìn)行存儲(chǔ)與調(diào)度,從而提高瀏覽器可視化效率。

圖5a為平行于y軸劃分,編碼的第1位為“0”,其分割線(虛線)左瓦片的第2位為“0”,右瓦片第2位為“1”,編碼的后6位為分割線小數(shù)點(diǎn)后的數(shù)值;圖5b為在圖5a的基礎(chǔ)上平行于x軸繼續(xù)劃分,編碼的第1位為“1”,其分割線(虛線)上方瓦片的第二位為“0”,下方瓦片第二位為“1”,編碼的后6位為分割線小數(shù)點(diǎn)后的數(shù)值。

圖5 瓦片編碼示意圖

Fig.5 Schematic diagram of vector tile code

3.2 基于二叉樹結(jié)構(gòu)的瓦片組織方法

為了保證數(shù)據(jù)粒度均衡的矢量瓦片在Web端視窗范圍內(nèi)準(zhǔn)確、高效的調(diào)度,在瓦片編碼后,基于二叉樹瓦片索引結(jié)構(gòu)對(duì)矢量瓦片進(jìn)行組織。在組織過程中,按照二叉樹結(jié)構(gòu)對(duì)瓦片進(jìn)行存儲(chǔ)。首先新建一個(gè)文件夾存放所有瓦片,而后每一級(jí)瓦片分別存放在對(duì)應(yīng)的文件夾下。為了準(zhǔn)確定位瓦片位置,由于瓦片二叉樹的子節(jié)點(diǎn)是在父節(jié)點(diǎn)基礎(chǔ)上繼續(xù)劃分,所以二叉樹子節(jié)點(diǎn)存放在對(duì)應(yīng)父節(jié)點(diǎn)文件夾中,詳細(xì)的瓦片組織示意圖如圖6所示。

圖6 瓦片組織示意圖

Fig.6 Schematic diagram of vector tile organization

圖6為0~7級(jí)瓦片的組織示意圖。0~7級(jí)的瓦片存儲(chǔ)在同一個(gè)根節(jié)點(diǎn)中,在根節(jié)點(diǎn)文件夾中,0~7級(jí)瓦片分屬不同文件夾。在每一級(jí)別瓦片的文件夾中,均以二叉樹的方式進(jìn)行存儲(chǔ),其中中間節(jié)點(diǎn)全部為文件夾目錄,葉子節(jié)點(diǎn)為JSON格式的矢量瓦片文件。無論是文件夾還是瓦片文件,均按照上文介紹的瓦片編碼方法進(jìn)行命名。由此,矢量瓦片的索引顯式地以文件夾/文件名字進(jìn)行存儲(chǔ),而不是存儲(chǔ)索引文件,避免了索引文件過大造成可視化中加載耗時(shí)以及大量占用內(nèi)存的問題。

為了在下文中更加清楚地描述各個(gè)文件夾與瓦片文件,本文為每個(gè)文件夾和文件節(jié)點(diǎn)進(jìn)行編號(hào)。所有瓦片的根節(jié)點(diǎn)為0號(hào),其內(nèi)部為m~n級(jí)瓦片所存儲(chǔ)的文件夾,分別編號(hào)為L(zhǎng)_1,L為矢量瓦片級(jí)別。在編號(hào)L_1文件夾的內(nèi)部,以二叉樹結(jié)構(gòu)存放著該級(jí)別的文件夾目錄與瓦片數(shù)據(jù),這些文件夾與文件分別以L_index進(jìn)行編號(hào)。L同樣為瓦片級(jí)別,index為對(duì)應(yīng)“完全二叉樹”的節(jié)點(diǎn)編號(hào),即任一節(jié)點(diǎn)編號(hào)為n,其左子節(jié)點(diǎn)為2n,右子節(jié)點(diǎn)為2n+1。

3.3 “回溯剪枝”算法優(yōu)化的瓦片調(diào)度流程

矢量瓦片的調(diào)度模式將直接影響到Web端可視化的效率,本文在二叉樹結(jié)構(gòu)的瓦片組織基礎(chǔ)上,基于“回溯剪枝”算法設(shè)計(jì)了適應(yīng)數(shù)據(jù)粒度約束的矢量瓦片高效調(diào)度算法。主要設(shè)計(jì)思路是采用遞歸方法進(jìn)行瓦片查找,直至返回所有符合視窗范圍的瓦片文件為止,其具體流程如圖7所示。

圖7 “回溯剪枝”算法優(yōu)化的調(diào)度瓦片流程圖

Fig.7 Flow chart of scheduling tiles with “cutting bran ches & backtracking” algorithm

在瓦片調(diào)度的過程中,客戶端向服務(wù)器端發(fā)送瓦片請(qǐng)求,并發(fā)送瓦片級(jí)別L以及屏幕范圍對(duì)應(yīng)的地理坐標(biāo)等信息。服務(wù)端接收到請(qǐng)求后,解析瓦片級(jí)別L以及視窗4個(gè)角點(diǎn)的地理坐標(biāo),并將地理坐標(biāo)投影到歸一化的Web墨卡托投影坐標(biāo)系。而后訪問瓦片編號(hào)為L(zhǎng)_1文件夾中,采用“回溯剪枝”的思想遞歸訪問文件夾,解析文件夾名字,并判斷該文件夾是否在視窗范圍內(nèi)。若在視窗內(nèi)則繼續(xù)向下查找直到遍歷到符合視窗范圍的JSON文件為止,將符合視窗范圍的JSON文件返回客戶端進(jìn)行繪制。若不在視窗范圍內(nèi),則對(duì)該目錄“剪枝”,并按遞歸算法對(duì)下一個(gè)目錄進(jìn)行查找,直到回溯到L_1文件夾為止。

在該流程中,準(zhǔn)確地判斷文件夾(文件)的名字是否在視窗范圍內(nèi)的過程是其關(guān)鍵,主要包括以下幾步:

①第一步,判斷文件夾名字第1位是否是“0”,若是“0”則比較分割線即編碼后u位(u=v-2,v為瓦片編碼總位數(shù))與視窗左右邊界的位置關(guān)系,否則比較分割線與視窗上下邊界的位置關(guān)系。在比較時(shí),由于計(jì)算機(jī)中整數(shù)之間的比較要快于浮點(diǎn)數(shù),因此將視窗范圍擴(kuò)大u倍,轉(zhuǎn)為整數(shù)與瓦片編碼后u位進(jìn)行數(shù)值大小比較。根據(jù)Web墨卡托投影規(guī)則,數(shù)值越大數(shù)據(jù)位置越偏右(下)。

②第二步,判斷文件夾名字第2位是否為“0”,若是“0”,則判斷分割線與視窗左(上)邊界的大小,否則判斷分割線與視窗右(下)邊界的大小。

③第三步,第2位是“0”的情況下,若分割線小于視窗左邊界大小,則判定該編碼不在視窗范圍內(nèi),否則判定在視窗范圍內(nèi);第2位是“1”的情況下,若分割線大于視窗右邊界大小,則判定該編碼不在視窗范圍內(nèi),否則判定在視窗范圍內(nèi)。基于以上幾步的比較判斷,可以準(zhǔn)確地匹配到視窗范圍的瓦片,為瓦片的高效調(diào)度提供了保障。

4 實(shí)驗(yàn)分析

4.1 實(shí)驗(yàn)數(shù)據(jù)與環(huán)境

實(shí)驗(yàn)設(shè)備為聯(lián)想T430s移動(dòng)工作站,其CPU為Intel酷睿i5 3210M處理器,內(nèi)存為4 G,操作系統(tǒng)為Windows7 64 位,網(wǎng)絡(luò)帶寬為30Mbps,采用Tomcat作為Web服務(wù)器。

本文采用的源數(shù)據(jù)主要為國(guó)家基礎(chǔ)地理數(shù)據(jù)和其他公開版地理數(shù)據(jù),實(shí)驗(yàn)數(shù)據(jù)類型包括點(diǎn)、線、面。其中,點(diǎn)數(shù)據(jù)選擇北京、上海、重慶、武漢、廣州約180×10?個(gè)興趣點(diǎn)(Point of Internet,POI)數(shù)據(jù),線數(shù)據(jù)選擇約380×10?點(diǎn)構(gòu)成的全國(guó)路網(wǎng)數(shù)據(jù),面數(shù)據(jù)選擇約340×10?點(diǎn)構(gòu)成的全國(guó)行政區(qū)劃數(shù)據(jù)以及約270×10?點(diǎn)構(gòu)成的全國(guó)水系數(shù)據(jù)。本文所選取的矢量數(shù)據(jù)統(tǒng)一坐標(biāo)系為WGS-1984坐標(biāo)系,分辨率為米級(jí)。其中矢量數(shù)據(jù)的組織方式參考百度地圖進(jìn)行組織與抽稀,詳細(xì)情況見表1。

表1 實(shí)驗(yàn)數(shù)據(jù)信息

Tab.1 The used experimental data

為了驗(yàn)證本文的方法,選取包括點(diǎn)、線、面3種數(shù)據(jù)類型的矢量數(shù)據(jù)集合進(jìn)行矢量瓦片的組織與調(diào)度實(shí)驗(yàn),所有數(shù)據(jù)集合共包括約1 200×10?個(gè)點(diǎn)。數(shù)據(jù)的分辨率為米級(jí),在Web墨卡托投影時(shí),應(yīng)將數(shù)據(jù)保留到小數(shù)點(diǎn)后8位。轉(zhuǎn)化為字符存儲(chǔ)后,每個(gè)坐標(biāo)點(diǎn)所占存儲(chǔ)空間約為18個(gè)字節(jié)。由公式(2)可以計(jì)算出,單張瓦片坐標(biāo)點(diǎn)的數(shù)量閾值num為2 185。由于是全國(guó)的矢量數(shù)據(jù),小于5級(jí)的地圖級(jí)別分辨率過低不適合展示全國(guó)的矢量數(shù)據(jù),所以最低瓦片級(jí)別選擇5級(jí)。根據(jù)電子地圖規(guī)范中分辨率與地圖級(jí)別的關(guān)系,由米級(jí)分辨率選擇最高瓦片級(jí)別為15級(jí)。最終將所有數(shù)據(jù)按電子地圖制圖規(guī)范組織為5~15級(jí)瓦片數(shù)據(jù),并分別對(duì)瓦片構(gòu)建過程與瓦片調(diào)度過程進(jìn)行實(shí)驗(yàn)分析。

4.2 實(shí)驗(yàn)結(jié)果與分析

數(shù)據(jù)組織后,本文按照數(shù)據(jù)粒度均衡的瓦片構(gòu)建方法,將數(shù)據(jù)劃分為5~15級(jí)瓦片,總耗時(shí)約10.2 min。采用文件形式按照二叉樹結(jié)構(gòu)對(duì)瓦片進(jìn)行存儲(chǔ),共生成5~15級(jí)瓦片57 298個(gè),占1.85 GB的存儲(chǔ)空間。并在Web端對(duì)瓦片進(jìn)行調(diào)度與可視化實(shí)驗(yàn),每一級(jí)瓦片的傳輸速率均可維持在3.1~3.3 M/s之間,傳輸速率的變化相對(duì)均衡。調(diào)度的各級(jí)瓦片數(shù)據(jù)量方差在0~0.1之間,說明Web端解析各瓦片的數(shù)據(jù)量較為均衡。

為了驗(yàn)證本文方法的可行性,將顧及粒度均衡性的矢量瓦片構(gòu)建方法與Mapbox提出的“格網(wǎng)法”進(jìn)行對(duì)比。作為開放源代碼地圖庫及應(yīng)用程序甚至業(yè)界規(guī)范的創(chuàng)建者或最大貢獻(xiàn)者,Mapbox基于矢量切片標(biāo)準(zhǔn)開發(fā)了Mapbox Studio Classic開源軟件,其將全球范圍等距離進(jìn)行劃分,其中,全球范圍z級(jí)瓦片數(shù)量為。經(jīng)統(tǒng)計(jì),在Mapbox矢量瓦片組織方法中,出現(xiàn)大量的無數(shù)據(jù)瓦片,為了增加對(duì)比深度將無數(shù)據(jù)瓦片全部去除,稱為“改進(jìn)的格網(wǎng)法”。本文將在瓦片組織過程中的瓦片組織耗時(shí)、占用存儲(chǔ)空間程度以及調(diào)度過程中的瓦片傳輸速率、渲染效率這4個(gè)方面對(duì)上面3種方法進(jìn)行對(duì)比分析,如圖8所示。

圖8 3種瓦片組織方法對(duì)比示意圖

Fig.8 Comparison among three organization methods of vector tile

1)瓦片構(gòu)建過程實(shí)驗(yàn)分析

在矢量瓦片的構(gòu)建過程中,瓦片構(gòu)建耗時(shí)與瓦片所占存儲(chǔ)空間是衡量瓦片構(gòu)建性能的兩個(gè)重要指標(biāo)。下面對(duì)這兩個(gè)指標(biāo)進(jìn)行實(shí)驗(yàn)分析,按照格網(wǎng)法、改進(jìn)的格網(wǎng)法以及本文方法構(gòu)建5~15級(jí)矢量瓦片,各級(jí)瓦片構(gòu)建耗時(shí)如圖9所示。

圖9 5~15級(jí)瓦片構(gòu)建耗時(shí)對(duì)比

Fig.9 Comparison of consuming time from level 5 to level 15

實(shí)驗(yàn)結(jié)果表明,在5~10級(jí)時(shí)3種方法的瓦片構(gòu)建耗時(shí)均在65 s以內(nèi),而11~15級(jí)與5~10級(jí)相差了多個(gè)數(shù)量級(jí)。為了準(zhǔn)確地對(duì)比3種方法的瓦片構(gòu)建耗時(shí),本文分為圖9a、圖9b兩個(gè)折線圖進(jìn)行統(tǒng)計(jì)分析。通過圖9a與圖9b的綜合分析得出,本文提出的數(shù)據(jù)粒度均衡的矢量瓦片構(gòu)建方法在瓦片構(gòu)建效率上有明顯的優(yōu)勢(shì)。這是由于在顧及數(shù)據(jù)粒度的均衡性后,各級(jí)瓦片的數(shù)量均大幅減少,且級(jí)別越高效果越明顯。圖9a中,在8~9級(jí)時(shí),3種方法構(gòu)建耗時(shí)均大幅度上升,說明構(gòu)建瓦片所消耗的時(shí)間不僅與瓦片數(shù)量有關(guān),還與矢量的數(shù)據(jù)量相關(guān)。與8級(jí)相比,9級(jí)增加了全國(guó)路網(wǎng)的省道,以及行政區(qū)劃的地市級(jí)面域,數(shù)據(jù)量大幅度增加,瓦片構(gòu)建耗時(shí)也大幅度上升。

瓦片構(gòu)建后,分別對(duì)比3種方法生成的瓦片所占存儲(chǔ)空間的大小。經(jīng)統(tǒng)計(jì),本文方法5~15級(jí)共有57 298個(gè)瓦片,占1.85 GB的存儲(chǔ)空間;改進(jìn)的格網(wǎng)法5~15級(jí)共3 913 022個(gè)瓦片,占16 GB的存儲(chǔ)空間;格網(wǎng)法5~15級(jí)共42 372 742個(gè)瓦片,占162 GB的存儲(chǔ)空間。經(jīng)對(duì)比發(fā)現(xiàn),本文方法生成的瓦片所占存儲(chǔ)空間遠(yuǎn)小于格網(wǎng)法。通過格網(wǎng)法與改進(jìn)的格網(wǎng)法對(duì)比可以得出,未存儲(chǔ)矢量數(shù)據(jù)的空瓦片也會(huì)占一定的存儲(chǔ)空間,在采用相同劃分方法的情況下,瓦片數(shù)量越多所占存儲(chǔ)空間越大。

圖10為5~15級(jí)瓦片所占存儲(chǔ)空間對(duì)比圖,為了增強(qiáng)對(duì)比效果,圖10a為5~9級(jí)瓦片存儲(chǔ)空間對(duì)比,圖10b為10~15級(jí)瓦片存儲(chǔ)空間對(duì)比。綜合兩圖分析,隨著級(jí)別的增大,采用格網(wǎng)法構(gòu)建的瓦片所占存儲(chǔ)空間呈現(xiàn)指數(shù)級(jí)增長(zhǎng),而本文方法增長(zhǎng)趨勢(shì)較為平緩,且在11~15級(jí)時(shí),本文方法明顯優(yōu)于格網(wǎng)法。在圖10a的8~9級(jí)與圖10b的10~11級(jí)中,瓦片的存儲(chǔ)空間增長(zhǎng)幅度較大,說明本文方法構(gòu)建的瓦片所占存儲(chǔ)空間與數(shù)據(jù)量多少相關(guān),而格網(wǎng)法的增長(zhǎng)幅度卻沒有明顯差別,說明在高級(jí)別時(shí),由于格網(wǎng)法劃分粒度過細(xì),瓦片的數(shù)量對(duì)其所占存儲(chǔ)空間有著決定性的影響。

圖10 5~15級(jí)瓦片構(gòu)建所占存儲(chǔ)空間對(duì)比

Fig.10 Comparison of storage space from level 5 to level 15

2)瓦片調(diào)度過程實(shí)驗(yàn)分析

在Web端矢量瓦片可視化過程中,瀏覽器的渲染效率是評(píng)價(jià)矢量瓦片調(diào)度性能的重要指標(biāo),本文從傳輸速率與瓦片數(shù)據(jù)的方差兩個(gè)方面進(jìn)行對(duì)比。傳輸速率的測(cè)算方法是在客戶端發(fā)送請(qǐng)求開始到所有瓦片均返回客戶端結(jié)束,記錄3種方法的傳輸耗時(shí)與調(diào)度數(shù)據(jù)量,調(diào)度數(shù)據(jù)量與傳輸耗時(shí)之比即為傳輸速率,計(jì)算方法如式(5)。

式中,v為傳輸速率,單位為MB/s;di為第i個(gè)瓦片文件所占存儲(chǔ)空間大小,單位為MB;n為調(diào)度瓦片的總個(gè)數(shù);t為瓦片傳輸耗時(shí),單位為s。

瓦片數(shù)據(jù)方差的測(cè)算方法是統(tǒng)計(jì)加載的每張瓦片數(shù)據(jù)量大小并計(jì)算方差,計(jì)算方法如式(6),方差越大說明Web可視化端解析瓦片耗時(shí)不均衡,影響瀏覽器渲染效率,反之則說明瀏覽器渲染效率高。

式中,s2為n個(gè)瓦片所占存儲(chǔ)空間的方差;di為第i個(gè)瓦片文件所占存儲(chǔ)空間大小,單位為MB;n為調(diào)度瓦片的總個(gè)數(shù);M為n個(gè)瓦片所占存儲(chǔ)空間的平均值,單位為MB。

由圖11a分析得,本文提出的數(shù)據(jù)粒度均衡的瓦片構(gòu)建方法,5~15級(jí)瓦片數(shù)據(jù)的傳輸速率均有所提升,且各級(jí)別相對(duì)比較均衡。在格網(wǎng)法中,5~8級(jí)傳輸速率較高,原因是5~8級(jí)數(shù)據(jù)量不大,且由于瓦片級(jí)別低劃分粒度相對(duì)較粗,碎小瓦片的數(shù)量不多。在9~10級(jí)速率降低的原因是隨著數(shù)據(jù)量的增加,單張瓦片的數(shù)據(jù)增大,易造成傳輸阻塞而影響傳輸速率。14~15級(jí)由于劃分粒度過細(xì),單張瓦片中的數(shù)據(jù)大幅度減少,但是瓦片數(shù)量增多,此時(shí)大量小文件的查找與傳輸耗時(shí)降低了網(wǎng)絡(luò)的傳輸速率。圖11b中,本文方法瓦片的數(shù)據(jù)量方差較格網(wǎng)法有很大程度的減小,說明本文方法通過數(shù)據(jù)粒度均衡性約束,有效地解決了Web可視化端瓦片解析耗時(shí)不均帶來的渲染效率低的問題,提升了瀏覽器可視化性能。

圖11 瓦片傳輸速率與瓦片數(shù)據(jù)量方差對(duì)比

Fig.11 Comparison among three methods for tile transmission speeds and tile data quantity variances

5 結(jié)束語

本文針對(duì)矢量瓦片可視化過程中瓦片構(gòu)建耗時(shí)長(zhǎng)、體量大以及繪制過程中屏幕卡頓問題,提出了數(shù)據(jù)粒度均衡的矢量瓦片構(gòu)建方法。采用全國(guó)行政區(qū)劃、路網(wǎng)、水系、部分重要城市POI數(shù)據(jù)集合進(jìn)行方法驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,本文的方法在矢量瓦片組織與調(diào)度過程中,顧及了同一級(jí)別與不同級(jí)別瓦片數(shù)據(jù)粒度的均衡性,極大程度上減少了瓦片生成數(shù)量,從而節(jié)約了瓦片構(gòu)建時(shí)間與存儲(chǔ)空間。在瓦片調(diào)度時(shí),既減少了大數(shù)據(jù)文件傳輸過程中的傳輸時(shí)延,又通過減少調(diào)度瓦片數(shù)量,有效地減少了Web可視化過程中瓦片匹配索引的次數(shù),從而縮短了瓦片調(diào)度時(shí)延,優(yōu)化了可視化效果。特別地,由于顧及粒度均衡性進(jìn)行瓦片組織,Web端解析瓦片耗時(shí)相差很小,提高了瀏覽器可視化效率。由于目前矢量瓦片在二維地圖中應(yīng)用較廣,本文方法是建立在二維地圖中的應(yīng)用,而如何將其拓展到三維地圖將是下一步研究的重點(diǎn)。

作者簡(jiǎn)介:應(yīng)申 (1979-) , 男, 安徽界首人, 教授, 博士, 主要從事地理信息系統(tǒng)、地圖學(xué)、空間分析、3D GIS與三維地籍等研究工作。

E-mail:shy@whu.edu.cn

本期回顧

博士綜述論壇

·?時(shí)空數(shù)據(jù)Web搜索的研究進(jìn)展

·?基于精準(zhǔn)時(shí)空信息的城市關(guān)鍵公共基礎(chǔ)設(shè)施運(yùn)行預(yù)警決策方法綜述

全球網(wǎng)格位置框架與編碼

·?地球剖分型GIS數(shù)據(jù)模型

·?基于全球剖分網(wǎng)格的不動(dòng)產(chǎn)編碼研究

·?目標(biāo)網(wǎng)格編碼支持的多源遙感影像地理匹配

測(cè)繪成果檔案存儲(chǔ)與服務(wù)

·?國(guó)家測(cè)繪檔案業(yè)務(wù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

·?大規(guī)模地理信息資源目錄集成服務(wù)的技術(shù)框架及系統(tǒng)應(yīng)用

·?國(guó)家測(cè)繪成果檔案存儲(chǔ)與管理總體設(shè)計(jì)與實(shí)現(xiàn)

·?國(guó)家級(jí)測(cè)繪地理信息系統(tǒng)數(shù)據(jù)成果備份設(shè)計(jì)與建設(shè)

·?國(guó)家級(jí)測(cè)繪地理信息系統(tǒng)異地容災(zāi)技術(shù)方案設(shè)計(jì)與實(shí)現(xiàn)

郵箱變更聲

·《地理信息世界》郵箱變更聲明

網(wǎng)站開通公告

·關(guān)于開通《地理信息世界》網(wǎng)站的公告

誠聘特約審稿專家

·誠聘|《地理信息世界》誠聘特約審稿專家

專題組稿

·約稿函|《地理信息世界》關(guān)于開辟“博士綜述論壇”專欄的約稿函

總結(jié)

以上是生活随笔為你收集整理的矢量切片_数据粒度均衡的二维矢量瓦片构建方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。