矢量切片_数据粒度均衡的二维矢量瓦片构建方法
作 者 信 息
應 申1,2,王子豪1,杜志強3,丁火平4, 李翔翔4
(1. 武漢大學 資源與環境科學學院,湖北 武漢 430079;2. 自然資源部城市國土資源監測與仿真重點實驗室,廣東 深圳 518034;3. 武漢大學 測繪遙感信息工程國家重點實驗室,湖北 武漢 430079;4. 航天恒星科技有限公司,北京 100086)
“【摘要】針對二維地圖矢量瓦片數據量不均衡造成的Web可視化中矢量數據傳輸、渲染效率低的問題,提出了數據粒度均衡的矢量瓦片構建方法。首先提出了矢量瓦片的粒度定義,并根據粒度均衡劃分的約束條件和流暢可視化的幀率要求,給出了單個矢量瓦片粒度大小的計算方法。在k-d樹算法的基礎上,制定分割線編碼規則及其不斷繼承與更新機制提出“父子”關聯且粒度均衡的瓦片構建方法和“回溯剪枝”算法的瓦片調度流程。這種數據粒度均衡的矢量瓦片可實現快速網絡數據調度與可視化,以全國矢量數據為例,從矢量瓦片構建耗時、所占存儲空間以及Web可視化過程中傳輸速率、渲染效率等方面驗證和評估本文方法的效能。
【關鍵詞】矢量瓦片;粒度均衡;k-d樹;“父子”關聯
【中圖分類號】P208 【文獻標識碼】A 【文章編號】1672-1586(2020)04-0066-09
”引文格式:應 申,王子豪,杜志強,等. 數據粒度均衡的二維矢量瓦片構建方法[J].地理信息世界,2020,27(4):66-74.
正文
0 引 言
隨著當今矢量數據獲取手段的多樣化,矢量數據正朝著大規模方向發展。矢量數據作為時空大數據平臺的基礎組成部分,其高效、準確的可視化對時空大數據平臺建設具有重要的意義。目前大規模矢量數據可視化的主流方法是預先切割并生成金字塔矢量瓦片文件,在可視化過程中通過與視點位置相關的瓦片調度方法實現多分辨率顯示。但是,現有的矢量瓦片大多采用等面積或等經緯度的分割方式(即格網法),由于矢量數據空間分布不均衡,導致數據粒度劃分的不均衡性,從而造成矢量瓦片構建與可視化過程面臨以下3個問題:①由于某些瓦片數據粒度劃分過粗造成單張瓦片數據量過大,導致網絡傳輸過程中的阻塞問題,影響了矢量瓦片的高效傳輸。解決方法中顧及數據稠密的矢量瓦片組織方法通過構建非平衡四叉樹索引,可解決單張瓦片數據量過大造成的傳輸延時問題。但是由于其沒有改變基于規則格網的瓦片劃分方式,瓦片之間數據量的不均衡導致可視化端解析過程耗時不同,降低了Web端可視化的效率。②由于粒度劃分的不均衡性,瓦片解析耗時不均衡,影響瀏覽器渲染效率。基于k-d樹索引模型的稠稀矢量瓦片構建方法,可保證瓦片之間數據量的均等性。但是,其并未顧及不同級別瓦片數據粒度均衡性以及“父子”瓦片的空間關聯性,降低了可視化過程中放大縮小操作時瓦片的調度效率。③瓦片總數量多造成的瓦片構建耗時長、存儲空間占用大的問題。矢量數據并行切片技術雖在一定程度上縮短了瓦片構建的時間,但并未從根本上解決矢量瓦片數量龐大造成的瓦片構建過程中切片耗時長以及存儲空間占用率低的問題。
為此,本文首先提出了矢量瓦片的粒度定義,而后設計并實現了數據粒度均衡的矢量瓦片構建方法。該方法基于數據均衡的二叉樹構建矢量瓦片,在單個瓦片大小滿足粒度約束的條件下,顧及了各瓦片間數據粒度的均衡性,從而避免了Web可視化端加載大瓦片文件的等待時延,提高了瓦片傳輸的速率。其次,在制定一套完整的瓦片編碼規則的基礎上,設計了基于“回溯剪枝”算法的瓦片調度流程,縮短了可視化時瓦片查找匹配時間。最終通過粒度均衡約束的矢量瓦片技術,實現了瓦片數據的快速調度與可視化。
1 矢量數據的粒度均衡性分析
粒是整體的一部分,信息粒化的一種常用方法是劃分,粒化的程度通過粒度來刻畫。矢量瓦片技術可以視為信息粒化的一種具體應用,整套矢量數據為一個整體,而瓦片則稱為粒,矢量數據的劃分過程稱為粒化,粒度則為矢量數據劃分的程度。
1.1 數據粒度對矢量瓦片的影響
為了方便探討數據粒度對矢量瓦片的影響,在數據劃分過程中,有以下定義:給定一個論域U,U為對象的非空有限集合,U上的一個非空子集簇x ={P1,P2,…,Pk}稱為U上的劃分,若Pi滿足式(1)約束,其中Pi稱為劃分x的一個塊:
若另有一個劃分y={Q1,Q2,…,Qk},如果?Qi∈y, ?Pj∈x,滿足Qi?Pj,則稱y比x劃分的細,反之x比y劃分的細。
根據矢量瓦片原理,矢量瓦片Pi的劃分方式滿足式(1)中對塊的約束。在矢量數據劃分過程中,劃分程度(粒度)的粗細將直接影響劃分的耗時以及劃分后占用空間的大小。若數據粒度過細,瓦片數量增多,耗時增加。隨著碎小瓦片數量的增加,瓦片整體所占存儲空間逐漸增大,空間占用率逐漸降低;若數據粒度過粗,則造成單張瓦片數據量過大,瓦片可視化時易造成傳輸等待,使得Web可視化端的流暢性受到嚴重影響。因此,矢量瓦片的劃分過程需要基于一個合適的粒度。
在Web端可視化過程中,傳輸數據的均衡性將直接影響瀏覽器渲染的效率。數據粒度越均衡,瀏覽器端解析瓦片的耗時差距越小,渲染的效率越高。所以,在瓦片構建過程中,在選擇合適粒度的基礎上還應盡可能保證粒度的均衡性。
1.2 數據粒度的構建與計算
粒度計算的基本問題包括兩個主要的方面,一是如何構建粒度,二是如何利用粒度去進行計算。
由于矢量瓦片中只存儲了矢量數據的屬性信息與幾何信息,其屬性信息相較于幾何信息所占存儲空間通常可忽略不計。因此,在刻畫矢量瓦片的粒度時,通常采用矢量數據的幾何信息描述矢量瓦片劃分粒度的粗細。在矢量瓦片數據粒度的構建過程中,通常用坐標點的數量描述瓦片劃分粒度的粗細。對于同一個矢量數據集合U,數據劃分粒度越細,瓦片的數量越多,單張瓦片坐標點的數量越少。
根據人眼的視覺暫留特性,如果要讓人的眼睛看到連續的動畫或電影,畫面刷新頻率理論上應該達到24幀/s。在矢量瓦片可視化過程中,為了接近甚至達到動畫的流暢性,除去矢量繪制等其他操作的耗時,估算單張瓦片的傳輸時間應維持在7~10 ms。根據不同的網絡傳輸帶寬,即可粗略估算出單個瓦片的最優存儲大小范圍。矢量數據的坐標對通常由一對經緯度數值組成,經緯度一般采用浮點類型進行存儲,其根據數據精度不同所占存儲空間不同。利用單張瓦片的存儲大小與單個坐標對的存儲空間相比,即可計算出每張瓦片所包含的坐標對的數量,以此來進行粒度的計算,具體的計算公式如下:
式中,num為單張瓦片所包含坐標點數量閾值;Bandwidth為帶寬大小,單位為Mbps;t為單個瓦片的傳輸時間,單位為s;space為單個坐標點所占存儲空間大小,其值的大小與數據的精度有關,單位為字節。根據上式,即可將瓦片粒度計算為方便統計的坐標點數量,為后面瓦片的構建提供了重要的參考準則。
2 粒度均衡約束的矢量瓦片構建方法
2.1 矢量數據預處理
本文按照矢量瓦片金字塔結構對矢量數據進行制圖綜合與分級組織,較高級別的數據組織在金字塔結構的較低層,并選取歸一化的Web墨卡托坐標系對坐標進行數據坐標轉換,具體轉換公式如式(3)。
式中,lon與lat分別為WGS-1984坐標系下的經緯度坐標,x與y分別為投影后的橫、縱坐標。投影變換后的坐標為浮點數,其精度與數據的分辨率相關。赤道的周長約為40 000 km,即保留小數點后8位,其分辨率可精確到米級。根據Web墨卡托投影特點,經過投影與歸一化后,全球矢量數據橫縱坐標統一規范到[0,1]范圍。
2.2 瓦片構建過程中分割線的計算與存儲
矢量瓦片的粒度均衡的約束主要包括兩個方面:第一,單張瓦片的數據粒度粗細應符合公式(2)計算的閾值大小num;第二,各瓦片間的數據粒度應粗細均勻。
根據粒度均衡的約束條件,本文基于k-d樹算法,計算分割線并對數據進行劃分。計算分割線前,先將矢量數據構建為離散點集。由于離散點集數據在x、y坐標方向分布的離散程度不同,為了使初始劃分后的數據更加集中,應比較數據坐標在x、y方向的方差大小,方差越大分布越分散,方差越小分布越集中。因此,選擇方差大坐標軸方向的作為初始劃分方向,并在兩個方向上交替劃分。最后,依據數據二分思想,計算矢量數據劃分的分割線,對離散點集進行遞歸均等二分,直到劃分后的數據坐標數量小于閾值num為止。
圖1a為某一級別的瓦片劃分示意圖,第一步采用x=0.4分割線劃分數據,對應分割線存儲到圖1b二叉樹第一層;第二步,在x=0.4分割線的左右分別采用y=0.4與y=0.6劃分數據,對應把y=0.4與y=0.6分割線,存儲到x =0.4的左右節點中作為二叉樹的第二層。以此類推,數據劃分完畢后,即可得到圖1b所示的二叉樹存儲結構。由于采用均等二分的劃分策略,每次劃分過程保證了數據粒度的均衡性。
圖1 分割線的存儲方法
Fig.1 The method of storing partition lines
2.3 “父子”關聯的瓦片構建方法
在顧及數據稠稀的瓦片構建方法中,目前已有直接采用k-d樹方法進行數據劃分的方法,在一定程度上顧及了數據粒度的均衡性。但是,其并未討論“父子”瓦片的關聯關系。若每一級數據均完全按照數據二分原則劃分,由于不同級別數據分布不同,將會導致“父子”瓦片之間喪失了邊界一致的空間繼承關系。其構建出的松散瓦片結構會延長數據劃分以及瓦片查找耗時,不利于Web端的高效可視化。
本文提出了顧及“父子”空間關聯的瓦片構建方法,在構建高級別瓦片時,需在低級別瓦片分割線的基礎上繼續劃分。因此,每當計算分割線后,均采用如圖1b所示的二叉樹結構對分割線進行存儲。通過各級瓦片對分割線的繼承,既縮短了瓦片構建過程中重復計算分割線帶來的耗時,又提升了Web端可視化時放大縮小的交互效率。具體的構建方法流程圖如圖2所示。
如圖2所示,將矢量數據按照制圖綜合規則組織為m~n級數據,m為地圖最低級別(默認為0級),n由矢量數據分辨率確定,數據分辨率越高,n的值越大,按照目前電子地圖規范,m級的分辨率對應地圖15級。矢量數據組織完成后,對每一級數據構建離散點集。在顧及數據粒度均衡性的約束下,對點集數據遞歸均衡二分,直到葉子節點的坐標數量滿足閾值num為止。然后緩存分割線,按分割線對各級矢量數據進行劃分并存為矢量文件。
圖2 父子關聯的瓦片構建方法流程圖
Fig.2 Flow chart of “parent-child” tile construction
在對m級數據劃分時,構建一個如圖1b所示的二叉樹存儲分割線。在對m+1級數據劃分時,為了保證“父子”瓦片的關聯性,先繼承分割線并按二叉樹結構對m+1級離散點集劃分,再對葉子節點中的坐標數量進行統計,并對超過閾值num的繼續遞歸劃分并更新二叉樹分割線存儲結構,直到葉子節點的坐標數量滿足閾值num為止。此時,每個瓦片坐標點的數量Ci滿足式(4)的約束,由此得出,采用本文方法所構建的瓦片粒度是均衡的。
圖3為中國范圍的矢量數據在4、5兩級進行劃分的示意圖,其中5級瓦片先繼承4級瓦片分割線后繼續劃分。
圖3 數據粒度均衡的矢量瓦片劃分過程示意圖
Fig.3 Schematic diagram of vector tile partition process with balanced data granularity
如圖3所示,數據粒度均衡的瓦片劃分方法,對于數據密集的地區,瓦片數量多,保證了各級瓦片文件數據粒度的均衡性,有利于提升瓦片傳輸性能。同時,通過繼承分割線的方法,“父子”瓦片相互關聯,提升了瓦片構建以及瓦片可視化的效率。
3 矢量瓦片組織方法與調度流程
3.1 適應高效調度的瓦片編碼方法
矢量瓦片中使用較多的是Mapbox設計的命名規范。數據粒度均衡的劃分方式使得分割線的位置隨著數據分布的變化而不斷變化,分割線需特定存儲。由于Mapbox的瓦片編碼方式僅與位置相關,不適合表達多個不同位置的分割線。
針對本文瓦片劃分后分割線如何存儲的問題,有兩種解決方式。第一種是將分割線位置等信息寫在一個與瓦片平行的獨立文件中,依照索引文件可定位所有瓦片位置。第二種是將分割線信息直接“顯式”的設計于瓦片編碼中,不需要對索引文件進行存儲。在矢量瓦片應用過程中,隨著數據量的增大,索引也將變得越來越復雜。若用第一種方式存儲瓦片,帶來索引文件過大而造成的傳輸時延以及可視化時Web端占用內存空間過大的問題,不利于Web端高效的可視化。為了瓦片能夠適應高效可視化,本文采用第二種方式,將瓦片的分割線顯示的組織于瓦片編碼中,瓦片編碼直接用于文件夾或瓦片文件的命名,具體編碼方式如圖4所示。
圖4 瓦片編碼定義
Fig.4 Defifi nition of vector tile code
為了準確定位瓦片位置,除了存儲分割線的位置,還應存儲劃分方向以及瓦片相對分割線的位置關系。瓦片編碼由2+u位數字構成,u為Web墨卡托坐標系下坐標小數點后的位數。圖4所示的示例數據分辨率為百米級,轉換為Web墨卡托坐標系坐標保留到小數點后6位。編碼的第一位數字表示瓦片劃分的方向,若為“0”則平行于y軸進行劃分,若為“1”則平行于x軸劃分。第二位數字表示該瓦片位于分割線的左右(上下)位置,若為“0”則表示該瓦片位于分割線左(上)側,若為“1”則表示位于分割線右(下)側。編碼中最后u位數字表示瓦片的分割線位置,在歸一化的Web墨卡托坐標系下,其x、y坐標范圍均為[0,1]。通過適應高效調度的編碼后,每個節點的名稱即為索引,不需對索引文件進行存儲與調度,從而提高瀏覽器可視化效率。
圖5a為平行于y軸劃分,編碼的第1位為“0”,其分割線(虛線)左瓦片的第2位為“0”,右瓦片第2位為“1”,編碼的后6位為分割線小數點后的數值;圖5b為在圖5a的基礎上平行于x軸繼續劃分,編碼的第1位為“1”,其分割線(虛線)上方瓦片的第二位為“0”,下方瓦片第二位為“1”,編碼的后6位為分割線小數點后的數值。
圖5 瓦片編碼示意圖
Fig.5 Schematic diagram of vector tile code
3.2 基于二叉樹結構的瓦片組織方法
為了保證數據粒度均衡的矢量瓦片在Web端視窗范圍內準確、高效的調度,在瓦片編碼后,基于二叉樹瓦片索引結構對矢量瓦片進行組織。在組織過程中,按照二叉樹結構對瓦片進行存儲。首先新建一個文件夾存放所有瓦片,而后每一級瓦片分別存放在對應的文件夾下。為了準確定位瓦片位置,由于瓦片二叉樹的子節點是在父節點基礎上繼續劃分,所以二叉樹子節點存放在對應父節點文件夾中,詳細的瓦片組織示意圖如圖6所示。
圖6 瓦片組織示意圖
Fig.6 Schematic diagram of vector tile organization
圖6為0~7級瓦片的組織示意圖。0~7級的瓦片存儲在同一個根節點中,在根節點文件夾中,0~7級瓦片分屬不同文件夾。在每一級別瓦片的文件夾中,均以二叉樹的方式進行存儲,其中中間節點全部為文件夾目錄,葉子節點為JSON格式的矢量瓦片文件。無論是文件夾還是瓦片文件,均按照上文介紹的瓦片編碼方法進行命名。由此,矢量瓦片的索引顯式地以文件夾/文件名字進行存儲,而不是存儲索引文件,避免了索引文件過大造成可視化中加載耗時以及大量占用內存的問題。
為了在下文中更加清楚地描述各個文件夾與瓦片文件,本文為每個文件夾和文件節點進行編號。所有瓦片的根節點為0號,其內部為m~n級瓦片所存儲的文件夾,分別編號為L_1,L為矢量瓦片級別。在編號L_1文件夾的內部,以二叉樹結構存放著該級別的文件夾目錄與瓦片數據,這些文件夾與文件分別以L_index進行編號。L同樣為瓦片級別,index為對應“完全二叉樹”的節點編號,即任一節點編號為n,其左子節點為2n,右子節點為2n+1。
3.3 “回溯剪枝”算法優化的瓦片調度流程
矢量瓦片的調度模式將直接影響到Web端可視化的效率,本文在二叉樹結構的瓦片組織基礎上,基于“回溯剪枝”算法設計了適應數據粒度約束的矢量瓦片高效調度算法。主要設計思路是采用遞歸方法進行瓦片查找,直至返回所有符合視窗范圍的瓦片文件為止,其具體流程如圖7所示。
圖7 “回溯剪枝”算法優化的調度瓦片流程圖
Fig.7 Flow chart of scheduling tiles with “cutting bran ches & backtracking” algorithm
在瓦片調度的過程中,客戶端向服務器端發送瓦片請求,并發送瓦片級別L以及屏幕范圍對應的地理坐標等信息。服務端接收到請求后,解析瓦片級別L以及視窗4個角點的地理坐標,并將地理坐標投影到歸一化的Web墨卡托投影坐標系。而后訪問瓦片編號為L_1文件夾中,采用“回溯剪枝”的思想遞歸訪問文件夾,解析文件夾名字,并判斷該文件夾是否在視窗范圍內。若在視窗內則繼續向下查找直到遍歷到符合視窗范圍的JSON文件為止,將符合視窗范圍的JSON文件返回客戶端進行繪制。若不在視窗范圍內,則對該目錄“剪枝”,并按遞歸算法對下一個目錄進行查找,直到回溯到L_1文件夾為止。
在該流程中,準確地判斷文件夾(文件)的名字是否在視窗范圍內的過程是其關鍵,主要包括以下幾步:
①第一步,判斷文件夾名字第1位是否是“0”,若是“0”則比較分割線即編碼后u位(u=v-2,v為瓦片編碼總位數)與視窗左右邊界的位置關系,否則比較分割線與視窗上下邊界的位置關系。在比較時,由于計算機中整數之間的比較要快于浮點數,因此將視窗范圍擴大u倍,轉為整數與瓦片編碼后u位進行數值大小比較。根據Web墨卡托投影規則,數值越大數據位置越偏右(下)。
②第二步,判斷文件夾名字第2位是否為“0”,若是“0”,則判斷分割線與視窗左(上)邊界的大小,否則判斷分割線與視窗右(下)邊界的大小。
③第三步,第2位是“0”的情況下,若分割線小于視窗左邊界大小,則判定該編碼不在視窗范圍內,否則判定在視窗范圍內;第2位是“1”的情況下,若分割線大于視窗右邊界大小,則判定該編碼不在視窗范圍內,否則判定在視窗范圍內。基于以上幾步的比較判斷,可以準確地匹配到視窗范圍的瓦片,為瓦片的高效調度提供了保障。
4 實驗分析
4.1 實驗數據與環境
實驗設備為聯想T430s移動工作站,其CPU為Intel酷睿i5 3210M處理器,內存為4 G,操作系統為Windows7 64 位,網絡帶寬為30Mbps,采用Tomcat作為Web服務器。
本文采用的源數據主要為國家基礎地理數據和其他公開版地理數據,實驗數據類型包括點、線、面。其中,點數據選擇北京、上海、重慶、武漢、廣州約180×10?個興趣點(Point of Internet,POI)數據,線數據選擇約380×10?點構成的全國路網數據,面數據選擇約340×10?點構成的全國行政區劃數據以及約270×10?點構成的全國水系數據。本文所選取的矢量數據統一坐標系為WGS-1984坐標系,分辨率為米級。其中矢量數據的組織方式參考百度地圖進行組織與抽稀,詳細情況見表1。
表1 實驗數據信息
Tab.1 The used experimental data
為了驗證本文的方法,選取包括點、線、面3種數據類型的矢量數據集合進行矢量瓦片的組織與調度實驗,所有數據集合共包括約1 200×10?個點。數據的分辨率為米級,在Web墨卡托投影時,應將數據保留到小數點后8位。轉化為字符存儲后,每個坐標點所占存儲空間約為18個字節。由公式(2)可以計算出,單張瓦片坐標點的數量閾值num為2 185。由于是全國的矢量數據,小于5級的地圖級別分辨率過低不適合展示全國的矢量數據,所以最低瓦片級別選擇5級。根據電子地圖規范中分辨率與地圖級別的關系,由米級分辨率選擇最高瓦片級別為15級。最終將所有數據按電子地圖制圖規范組織為5~15級瓦片數據,并分別對瓦片構建過程與瓦片調度過程進行實驗分析。
4.2 實驗結果與分析
數據組織后,本文按照數據粒度均衡的瓦片構建方法,將數據劃分為5~15級瓦片,總耗時約10.2 min。采用文件形式按照二叉樹結構對瓦片進行存儲,共生成5~15級瓦片57 298個,占1.85 GB的存儲空間。并在Web端對瓦片進行調度與可視化實驗,每一級瓦片的傳輸速率均可維持在3.1~3.3 M/s之間,傳輸速率的變化相對均衡。調度的各級瓦片數據量方差在0~0.1之間,說明Web端解析各瓦片的數據量較為均衡。
為了驗證本文方法的可行性,將顧及粒度均衡性的矢量瓦片構建方法與Mapbox提出的“格網法”進行對比。作為開放源代碼地圖庫及應用程序甚至業界規范的創建者或最大貢獻者,Mapbox基于矢量切片標準開發了Mapbox Studio Classic開源軟件,其將全球范圍等距離進行劃分,其中,全球范圍z級瓦片數量為。經統計,在Mapbox矢量瓦片組織方法中,出現大量的無數據瓦片,為了增加對比深度將無數據瓦片全部去除,稱為“改進的格網法”。本文將在瓦片組織過程中的瓦片組織耗時、占用存儲空間程度以及調度過程中的瓦片傳輸速率、渲染效率這4個方面對上面3種方法進行對比分析,如圖8所示。
圖8 3種瓦片組織方法對比示意圖
Fig.8 Comparison among three organization methods of vector tile
1)瓦片構建過程實驗分析
在矢量瓦片的構建過程中,瓦片構建耗時與瓦片所占存儲空間是衡量瓦片構建性能的兩個重要指標。下面對這兩個指標進行實驗分析,按照格網法、改進的格網法以及本文方法構建5~15級矢量瓦片,各級瓦片構建耗時如圖9所示。
圖9 5~15級瓦片構建耗時對比
Fig.9 Comparison of consuming time from level 5 to level 15
實驗結果表明,在5~10級時3種方法的瓦片構建耗時均在65 s以內,而11~15級與5~10級相差了多個數量級。為了準確地對比3種方法的瓦片構建耗時,本文分為圖9a、圖9b兩個折線圖進行統計分析。通過圖9a與圖9b的綜合分析得出,本文提出的數據粒度均衡的矢量瓦片構建方法在瓦片構建效率上有明顯的優勢。這是由于在顧及數據粒度的均衡性后,各級瓦片的數量均大幅減少,且級別越高效果越明顯。圖9a中,在8~9級時,3種方法構建耗時均大幅度上升,說明構建瓦片所消耗的時間不僅與瓦片數量有關,還與矢量的數據量相關。與8級相比,9級增加了全國路網的省道,以及行政區劃的地市級面域,數據量大幅度增加,瓦片構建耗時也大幅度上升。
瓦片構建后,分別對比3種方法生成的瓦片所占存儲空間的大小。經統計,本文方法5~15級共有57 298個瓦片,占1.85 GB的存儲空間;改進的格網法5~15級共3 913 022個瓦片,占16 GB的存儲空間;格網法5~15級共42 372 742個瓦片,占162 GB的存儲空間。經對比發現,本文方法生成的瓦片所占存儲空間遠小于格網法。通過格網法與改進的格網法對比可以得出,未存儲矢量數據的空瓦片也會占一定的存儲空間,在采用相同劃分方法的情況下,瓦片數量越多所占存儲空間越大。
圖10為5~15級瓦片所占存儲空間對比圖,為了增強對比效果,圖10a為5~9級瓦片存儲空間對比,圖10b為10~15級瓦片存儲空間對比。綜合兩圖分析,隨著級別的增大,采用格網法構建的瓦片所占存儲空間呈現指數級增長,而本文方法增長趨勢較為平緩,且在11~15級時,本文方法明顯優于格網法。在圖10a的8~9級與圖10b的10~11級中,瓦片的存儲空間增長幅度較大,說明本文方法構建的瓦片所占存儲空間與數據量多少相關,而格網法的增長幅度卻沒有明顯差別,說明在高級別時,由于格網法劃分粒度過細,瓦片的數量對其所占存儲空間有著決定性的影響。
圖10 5~15級瓦片構建所占存儲空間對比
Fig.10 Comparison of storage space from level 5 to level 15
2)瓦片調度過程實驗分析
在Web端矢量瓦片可視化過程中,瀏覽器的渲染效率是評價矢量瓦片調度性能的重要指標,本文從傳輸速率與瓦片數據的方差兩個方面進行對比。傳輸速率的測算方法是在客戶端發送請求開始到所有瓦片均返回客戶端結束,記錄3種方法的傳輸耗時與調度數據量,調度數據量與傳輸耗時之比即為傳輸速率,計算方法如式(5)。
式中,v為傳輸速率,單位為MB/s;di為第i個瓦片文件所占存儲空間大小,單位為MB;n為調度瓦片的總個數;t為瓦片傳輸耗時,單位為s。
瓦片數據方差的測算方法是統計加載的每張瓦片數據量大小并計算方差,計算方法如式(6),方差越大說明Web可視化端解析瓦片耗時不均衡,影響瀏覽器渲染效率,反之則說明瀏覽器渲染效率高。
式中,s2為n個瓦片所占存儲空間的方差;di為第i個瓦片文件所占存儲空間大小,單位為MB;n為調度瓦片的總個數;M為n個瓦片所占存儲空間的平均值,單位為MB。
由圖11a分析得,本文提出的數據粒度均衡的瓦片構建方法,5~15級瓦片數據的傳輸速率均有所提升,且各級別相對比較均衡。在格網法中,5~8級傳輸速率較高,原因是5~8級數據量不大,且由于瓦片級別低劃分粒度相對較粗,碎小瓦片的數量不多。在9~10級速率降低的原因是隨著數據量的增加,單張瓦片的數據增大,易造成傳輸阻塞而影響傳輸速率。14~15級由于劃分粒度過細,單張瓦片中的數據大幅度減少,但是瓦片數量增多,此時大量小文件的查找與傳輸耗時降低了網絡的傳輸速率。圖11b中,本文方法瓦片的數據量方差較格網法有很大程度的減小,說明本文方法通過數據粒度均衡性約束,有效地解決了Web可視化端瓦片解析耗時不均帶來的渲染效率低的問題,提升了瀏覽器可視化性能。
圖11 瓦片傳輸速率與瓦片數據量方差對比
Fig.11 Comparison among three methods for tile transmission speeds and tile data quantity variances
5 結束語
本文針對矢量瓦片可視化過程中瓦片構建耗時長、體量大以及繪制過程中屏幕卡頓問題,提出了數據粒度均衡的矢量瓦片構建方法。采用全國行政區劃、路網、水系、部分重要城市POI數據集合進行方法驗證。實驗結果表明,本文的方法在矢量瓦片組織與調度過程中,顧及了同一級別與不同級別瓦片數據粒度的均衡性,極大程度上減少了瓦片生成數量,從而節約了瓦片構建時間與存儲空間。在瓦片調度時,既減少了大數據文件傳輸過程中的傳輸時延,又通過減少調度瓦片數量,有效地減少了Web可視化過程中瓦片匹配索引的次數,從而縮短了瓦片調度時延,優化了可視化效果。特別地,由于顧及粒度均衡性進行瓦片組織,Web端解析瓦片耗時相差很小,提高了瀏覽器可視化效率。由于目前矢量瓦片在二維地圖中應用較廣,本文方法是建立在二維地圖中的應用,而如何將其拓展到三維地圖將是下一步研究的重點。
作者簡介:應申 (1979-) , 男, 安徽界首人, 教授, 博士, 主要從事地理信息系統、地圖學、空間分析、3D GIS與三維地籍等研究工作。
E-mail:shy@whu.edu.cn
本期回顧
博士綜述論壇
·?時空數據Web搜索的研究進展
·?基于精準時空信息的城市關鍵公共基礎設施運行預警決策方法綜述
全球網格位置框架與編碼
·?地球剖分型GIS數據模型
·?基于全球剖分網格的不動產編碼研究
·?目標網格編碼支持的多源遙感影像地理匹配
測繪成果檔案存儲與服務
·?國家測繪檔案業務管理系統設計與實現
·?大規模地理信息資源目錄集成服務的技術框架及系統應用
·?國家測繪成果檔案存儲與管理總體設計與實現
·?國家級測繪地理信息系統數據成果備份設計與建設
·?國家級測繪地理信息系統異地容災技術方案設計與實現
郵箱變更聲明
·《地理信息世界》郵箱變更聲明
網站開通公告
·關于開通《地理信息世界》網站的公告
誠聘特約審稿專家
·誠聘|《地理信息世界》誠聘特約審稿專家
專題組稿
·約稿函|《地理信息世界》關于開辟“博士綜述論壇”專欄的約稿函
總結
以上是生活随笔為你收集整理的矢量切片_数据粒度均衡的二维矢量瓦片构建方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go 修改结构体方法_Go36-13-结
- 下一篇: java 过滤脚本_【快学SpringB