引言
隨著OSM地圖、百度地圖、高德地圖等在線地圖服務迅速普及,地圖已經成為人們日常生活不可缺少的科學工具。隨著地圖的移動化應用逐步深入,基于柵格瓦片技術的地圖服務由于受網絡帶寬、圖片無法交互以及不支持無級縮放等限制,已難以滿足用戶對地圖服務在交互性、高分辨率等方面的需求。矢量瓦片技術將瓦片服務的高效和矢量地圖的靈活交互結合在一起,為解決上述問題提供了一種新的解決方案,客戶端根據地圖顯示范圍和地圖配置樣式實現(xiàn)地圖的實時渲染:可交互式定制地圖樣式,滿足了用戶大眾化、地圖樣式個性化的需求。因而,矢量瓦片地圖逐漸被各地圖平臺所采用。
1矢量瓦片繪制流程
1.1符號繪制流程
與柵格瓦片不同,矢量瓦片以四叉樹金字塔模型來切割矢量數(shù)據,并將矢量瓦片數(shù)據存儲于服務器端,客戶端根據地圖顯示范圍以及地圖樣式文件定義的數(shù)據源映射獲取服務器上存儲的矢量瓦片、圖表、字體等資源,然后按照地圖樣式文件定義的地圖表達規(guī)則渲染輸出地圖。
矢量瓦片繪制流程如圖1所示。
用戶可重新調整字體的大小、地圖符號的顏色/尺寸等屬性,改變現(xiàn)有的地圖樣式??蛻舳素撠熯M行地圖渲染輸出,服務器端只負責將矢量瓦片、符號、字體等資源傳遞給客戶端。
1.2硬件加速繪制技術
隨著圖形處理器(GPU)技術的不斷發(fā)展,在固定功能圖形渲染流水線(Fix-functionRenderingPipeline)的基礎上,增加了可編程圖形渲染流水線(ProgrammableRenderingPipeline)。通過撰寫著色器程序shader代碼,由GPU直接在硬件層面對這些shader代碼進行編譯,從而實現(xiàn)特定的繪制效果。圖2展示了典型的可編程圖形渲染流水線。為了將矢量地理數(shù)據繪制到屏幕上,在圖元裝配階段把原始的幾何數(shù)據組織為點、線、三角形等幾何圖形:頂點著色器(Vertexshaders)允許通過編程實現(xiàn)對每個頂點屬性(位置、紋理、顏色等)的計算和變換操作。柵格化和插值階段將這些以三角形為代表的幾何圖形數(shù)據轉換為屏幕像素。像素著色器(Fragmentshaders)同樣以可編程的方式實現(xiàn)逐個像素的顏色等屬性的計算與操作。通過著色器程序(shader)實現(xiàn)對GPU內部頂點和像素處理階段的直接操縱,使得圖形本身的處理速度和靈活性都得到了非常大的提高。
圖2可編程圖形渲染流水線
2矢量瓦片符號繪制
地圖符號是直觀表達空間要素特征與分布規(guī)律的主要手段,是表達地圖內容、傳遞地理信息的主要媒介。一般會利用點狀、線狀、面狀地圖符號來描述客觀世界中具有特定位置的地理對象或者現(xiàn)象,并通過地圖制圖規(guī)則將繪制結果直觀、形象地展現(xiàn)在地圖上。矢量瓦片符號渲染過程以數(shù)據為驅動,依據繪制要求對數(shù)據進行轉換和處理,建立地圖符號與地理要素之間的對應關系,根據屬性信息以及符號樣式文件,利用圖形繪制API以及符號化繪制方法,在屏幕上輸出地圖。
2.1點狀符號繪制
點狀符號具有定位和定性特征,其大小并不指代地物的面積或范圍,與地圖的比例尺無關,如水準點、居民地、水塔、旅游景點等。
點狀符號采用預先制作好的圖片來代表點狀地物,柵格圖片填充的點狀符號的主要參數(shù)包括:圖片存儲的路徑、圖片的大小、圖片的位置、圖片的縮放系數(shù),圖片的旋轉角度等。
點狀要素的符號化表達方法主要包括:單一符號化、著色符號化、等級符號化、比例符號化以及分類符號化。單一符號化,所有的點狀要素都采用相同的點狀符號:著色符號化,即通過顏色變化體現(xiàn)點狀要素之間的屬性差異:比例符號化,則符號的尺寸成一定的函數(shù)關系,跟隨尺寸變化體現(xiàn)點狀要素之間的屬性差異:分類符號化,則可以根據點狀要素的屬性分類,不同類別的點狀要素配置的符號不同。
2.2面狀符號繪制
面狀符號用于表示分布范圍較廣的大面積地理要素,其范圍大小按比例尺顯示,如行政區(qū)劃、森林、湖泊等。面狀符號有一條有形或者無形的閉合輪廓,主要由兩部分構成:輪廓邊界和內部填充。輪廓邊界可以用線狀符號來表示,內部填充包括顏色填充(純色填充和漸變填充)、符號填充(點狀符號填充和線狀符號填充)、紋理填充。純色填充是用一種顏色進行面域填充,是最普遍和常用的填充方式。漸變填充是顏色按照一定規(guī)律變化的面域填充方式。點狀符號填充是面域內點狀符號按照一定的方式排列(矩形填充、品形填充、散列填充),其填充參數(shù)主要包括點狀符號、符號的縮放比例、符號的旋轉角度、符號的橫向間隔和縱向間隔等。線狀符號填充,其填充參數(shù)主要包括線狀符號、符號的填充角度、符號的間隔等。紋理填充則是利用紋理圖片,基于圖片旋轉角度、圖片縮放比例等參數(shù)進行面域填充。
3結語
當前,GPU以其明顯的效率優(yōu)勢,成為當前地理信息可視化領域的熱點。對于點狀符號,將其外接矩形直接生成兩個三角形,根據屬性信息從紋理緩存中獲取相應的紋理符號,并綁定到三角形頂點。對于線狀符號,采用平行線推移算法將線狀要素離散為三角形條帶。對于面狀符號,采用已經成熟的Delaunay三角網的剖分方法,將面狀要素離散為三角形圖元集合。
客戶端根據地圖顯示的范圍以及數(shù)據源從矢量瓦片數(shù)據庫獲取相應的矢量瓦片。通過對符號樣式文件的編輯,可以動態(tài)地改變地圖符號樣式、實時輸出地圖??蛻舳素撠煍?shù)據的解析與渲染任務,緩解了服務器壓力,為用戶提供了一種交互式、可定制、可配置的地圖制圖服務。





