newsence

Show HN: Flight-Viz – 僅用 3.5MB 的 Rust 與 WASM 在 3D 地球儀上呈現一萬架航班

Hacker News·4 天前

Flight-Viz 是一個高效能的即時航班追蹤器,透過僅 3.5MB 的 Rust 與 WebAssembly 實作,在 3D 地球儀上視覺化呈現一萬架航班。它展示了現代網頁技術在極小佔用空間下處理大規模地理空間數據視覺化的效率。

背景

Flight-Viz 是一個由開發者 coolwulf 打造的即時航班追蹤系統,其核心技術亮點在於利用 Rust 語言編譯為 WebAssembly(WASM),在瀏覽器中實現流暢的 3D 地球儀渲染。該專案宣稱能在極小的體積下,於網頁端同時呈現超過一萬架飛機的動態位置,展現了高效能網頁圖形處理的可能性。

社群觀點

在 Hacker News 的討論中,社群對 Flight-Viz 的渲染效能普遍給予高度評價。許多使用者反映在 macOS 的 Firefox 等環境下執行極為流暢,並對其背後的技術堆疊感到好奇。作者透露該專案主要基於 egui 介面庫與 WebGPU 技術,透過極致的優化手段確保大量數據下的操作體驗。儘管初始版本標榜極小體積,但隨著作者更換更高解析度的地圖圖標,WASM 檔案大小有所增加,這也引發了關於效能與視覺品質權衡的討論。

在使用者體驗方面,社群成員提出了多項實務建議與回饋。最集中的問題在於縮放邏輯,多位使用者指出目前的縮放是以螢幕中心為基準,而非滑鼠游標位置,這導致難以精確定位特定的飛機或地標。此外,Windows 使用者反映滑鼠滾輪的縮放感度過於靈敏,容易導致視角瞬間跳躍。針對行動裝置與筆電用戶,社群也建議加入雙指撥動縮放的功能。作者對此反應迅速,在討論過程中便著手修正了縮放演算法,並解決了部分視角切換時產生的視差位移問題。

數據來源與視覺呈現也是討論的焦點。觀察敏銳的網友發現,地圖上的航班分佈極不均勻,南美洲、非洲、中國與俄羅斯等地區幾乎是一片空白。這引發了關於開發中國家與發達國家航空差距的短暫討論,但作者隨即澄清這主要是受限於 OpenSky 數據庫的覆蓋範圍,該數據源目前仍以北美與歐洲為主。在視覺辨識度上,有使用者反映在街道地圖模式下,飛機圖標因顏色與線條過細而難以辨識,作者則建議切換至衛星視圖以獲得更好的對比效果。此外,也有人提議可以根據飛機的航向與速度進行位置推算,以模擬出更具即時感的動態軌跡。

延伸閱讀

在討論過程中,開發者提到專案使用了 OpenSky 網路作為航班數據來源,並採用了 egui 與 WebGPU 進行介面與圖形渲染。此外,留言中也提及了 Leaflet 地圖框架在處理投影邏輯時可能遇到的座標偏移挑戰。

https://flight-viz.com/