cesium入門路線|基于 WebGL 的地圖引擎
1)Cesium?簡介
Cesium 是一個不需要插件在瀏覽器中創(chuàng)建 3D 地球和 2D 地圖的 JavaScript 庫。它使用 WebGL 來進行硬件加速圖形,并且是跨平臺、跨瀏覽器,并且適應于動態(tài)數(shù)據(jù)可視化。
Cesium 是基于 Apache2.0 許可的開源程序。?它可以免費的用于商業(yè)和非商業(yè)用途。
Cesium是國外一個基于 javascript?編寫的使用?webgl?的地圖引擎。Cesium?支持 3D,2D,2.5D 形式的地圖展示,可以自行繪制圖形,高亮區(qū)域,并提供良好的觸摸支持。且?支持絕大多數(shù)的瀏覽器和 mobile。Cesium 中支持載入 3D 模型,不過只支持 gltf 格式。??
gltf 是 khronos 組織(起草 OpenGL 標準的那個組織)定義的一種交換格式,用于互?聯(lián)網(wǎng)或移動設備上展現(xiàn) 3d 內(nèi)容,充分支持 opengl,webgl,opengles 圖形加速標準。??
gltf??目?前?可?以?由?collada??格?式?轉(zhuǎn)?換?而?來?,?官?網(wǎng)?上?也?提?供?了?一 個?轉(zhuǎn)?換?工?具:https://www.khronos.org/gltf
2)Cesium的依賴性
◆基于HTML5標準,無插件,跨平臺
◆無法獨立運行,依賴于瀏覽器(CesiumLab基于Electron架構(gòu))
◆瀏覽器又是基于HTTP協(xié)議的,所以Cesium要正確運行必須有HTTP Server
◆但是HTTP Server的實現(xiàn)不限于開發(fā)語言和服務器,學Cesium可以不用nodejs
3)官方介紹
◆一個開源的javascript三維虛擬地球/地圖 ◆https://cesiumjs.org
◆Cesium的目標是動態(tài)數(shù)據(jù)可視化的虛擬地球領導者,盡一切可能去優(yōu)化性能、精度、效果,易用性、平臺支撐、內(nèi)容.
◆Cesium經(jīng)過同行的公開評審,單元測試覆蓋90%以上代碼,完整的文檔,以及一個非常專業(yè)的開發(fā)團隊。
4)Cesium的所有功能
◆使用3d tiles 格式流式加載各和不同的3d數(shù)據(jù),包含傾斜攝影模型、三維建筑物、CAD和BIM的外部和內(nèi)部,點云數(shù)據(jù)。并支持樣式配置和用戶交互操作。 ◆全球高精度地形數(shù)據(jù)可視化,支持地形夸張效果.
以及可編程實現(xiàn)的等高線和坡度分析效果。
◆支持多和資源的圖像圖層,包括VVMS,TMSVMTS以及時序圖像。圖像支持透明度疊加、亮度對比度、GAMMA、色調(diào)、飽和度都可以動態(tài)調(diào)整.支持圖像的卷簾對比。
◆支持標準的矢量格式KML、GeolSON、TopolSON以及矢量的貼地效果。
◆三維模型支持gltf2.0標準的PBR材質(zhì)、動畫、蒙皮和變形效果。貼地以及高亮效果。
◆使用CZML支持動態(tài)時序數(shù)據(jù)的展示。
◆支持各種幾何體:點、線、面、標注、公告牌、立方體、球體橢球體、圓柱體、走廊(corridors)、管徑、墻體 ◆可視化效果包括: 基于太陽位置的陰影、自身陰影、柔和陰影大氣、霧、太陽、陽光、月亮、星星、水面。
◆粒子特效: 煙、火、火花。
◆地形、模型、3d tiles模型的面裁剪
◆對象點選和地形點選。
◆支持鼠標和觸摸操作的縮放、渲染、慣性平移、飛行、任意視角.地形碰撞檢測。
◆支持3d地球、2d地圖、2.5d哥倫布模式。3d視圖可以使用透視和正視兩種投影方式
◆支持點、標注、公告牌的聚集效果
5)Cesium的知識體系
◆Cesium是一個跨界SDK,涉及三個知識領域
◆Web前端
◆計算機圖形學
◆地理信息系統(tǒng) (GIS)
6)快速入門源碼獲取
? 官網(wǎng)下載 https://cesiumjs.org/downloads/
? GitHub上下載?
https://github.com/AnalyticalGraphicsInc/cesium
? 安裝NodeJS https://nodejs.org/en/
? npm install -- 安裝cesium開發(fā)和運行中依賴的第三方nodejs包
? npm run release – 把cesium各模塊源碼打包壓縮生成統(tǒng)一cesium.js 命令深度解釋
? npm start – 開啟cesium的測試Http Server
? Sandcastle – Cesium教室
7)快速入門的學習路線
Viewer 類學習?一切API的入口 Camera類學習—想去哪里去哪里Cartesian3和Cartographic
lmageryLayer類學習—地球原來如此多姿 (lmageryProvider類)
TerrainProvider類學習?-這才是“真”三維(sampleTerrain
Entity API- 與地球交互起來?
( DataSourceScene.pick、Property)
Cesium3DTileset類—讓場景更細致真實點
( Cesium3DTileStyle類
Primitive API- 性能提升第一步 ( Geometrylnstance類、Geometry類
Fabric?- 玩點高級的 (Appearance類Material類
ParticleSystem- 錦上添點“花”( Particle類ParticleEmitter類)
8)學習方法—進階之路
◆
Web前端方向:
?Cesium與webpack (裁剪以及壓縮) ,Cesium與vue (框架設計嵌入復雜業(yè)務系統(tǒng)),Cesium的UI (UI設計,定制可復用的Cesium交互界面)
◆圖形學方向:?
WebGL深入,基于Cesium的可視化定制 (視闌、水淹,水面、熱力圖,流場圖,飛線圖,掃描圖)
◆數(shù)據(jù)預處理方向:?
投影變換,空間索引,LOD,3dtile生成,數(shù)據(jù)存儲,數(shù)據(jù)分發(fā)服務,解決超大空間數(shù)據(jù)如何在Cesium上流暢可視化的問題
9)cesium的基礎入門教程
想要獲取更多GIS資料、cesium電子書(演示類)、Cesium課程可以添加小北v 備注:cesium