談談地圖中的道路繪制


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數據,有箭頭,有定慧橋標注。


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




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM