談談地圖中的道路繪製

GIS屬於可視化領域。一所謂可視化技術是利用計算機圖形學和圖形處理技術,將數據轉化成圖形或者圖像在屏幕上顯示出來,並進行交互處理的理論、方法和技術。個人理解地圖中也有幾個關鍵點:

  • 原始數據可以是圖像也可以是矢量數據,如我們底圖是點、線、面等矢量數據,衛片、街景是圖像數據。
  • 渲染即顯示到屏幕上,現在各家手機端都是基於opengl,不論圖形還是圖像最終顯示到屏幕都必須像素化(光柵化)。
  • 交互性 地圖APP中分量最重的就是交互,背後隱藏的巨大的需求。

 目前地圖中各種Feature數據,樓塊是真正三維的,不過只是一些多邊形垂直拉出一定高度形成一個擠出體,但是沒有貼圖。GIS中絕大多數數據還是以二維爲主,面數據繪製最簡單,標註點數據在預處理時做重疊避讓處理繪製時不會相互遮擋,只有線之間有遮擋和層次關係。那麼蒼白的2D道路數據如何描述現實世界中複雜的道路交錯關係呢?尤其北京的橋最爲出名,XX橋上的立交關係非常之重要。涉及下面兩個基本技術:

1. 道路立交、平交關係表達

地圖中路線用一個有寬度的多邊形帶表示,有背景描邊和前景填充組成。


圖中橢圓框爲立交關係,藍色框位置爲平交關係。假設A級路重要度大於B級路。


立交關係比較簡單:

B級路_borderB級路_fill

A級路_borderA級路_fill

最終可實現A級路在B級路之上。

平交關係

丁字形路口兩處平角關係繪製過程如下:


從左到右繪製順序爲:

A道路_border(灰色),

B道路_border(橙色);

A道路_fill(白色),

B_道路_fill(黃色)

最終AB道路平交效果如第四個子圖。

2. ZLevel立交數據

現實世界是3D的,地圖是2D的,那麼地圖可以理解成現實世界的頂視圖。頂視圖的信息一定沒有自由透視模式的信息多。不管道路立交關係有多少層,頂視圖中獲取的圖像只能看到相交處處於最高層的道路。

ZLevel數據正是這麼一份補丁數據,它關聯了道路相交處於最高層的道路路段。如下圖是定慧橋的衛星圖:


它的ZLevel數據和路網如下圖,黑色路線爲道路數據,藍色粗線爲ZLevel數據。

 

最終道路繪製時候,先畫路網。然後再繪製ZLevel數據。最終實現道路的立交層次的表示。

 

3. 各家地圖道路繪製效果對比

左圖是谷歌地圖道路:立交關係與現實一致道路有點寬且沒有箭頭,“定慧橋”文字一直沒出現,這麼重要的標註。

右圖是騰訊地圖:立交關係與現實一致,箭頭稍密,有定慧橋標註。

左圖是百度地圖道路:立交關係藍色橢圓標註的地方不對,有箭頭,有定慧橋標註。

右圖是高德地圖道路:沒有立交關係都是平交,應該是沒有使用ZLevel數據,有箭頭,有定慧橋標註。


地圖這東西,你越欣賞越懂得欣賞!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章