cesiumjs開發實踐 四

2021-07-15 04:05:04 字數 1829 閱讀 8790

摘要

cesiumjs中的地形系統是一種由流式瓦片資料生成地形mesh的技術。

cesiumjs中的地形系統是一種由流式瓦片資料生成地形的技術。

新增地形將視角放平時

地形顯示wireframe

cesiumjs支援兩種型別的地形,stk world terrain和

small terrain。

stk world terrain是高解析度, 基於quantized mesh的地形。這是一種基於網格的地形,可充分利用gl中的shader來渲染,效果相當逼真。stk world terrain使用了多種資料來源,分別適應不同地區和不同精度時的情形。比如對於美國本土使用national elevation dataset (ned)的高程,精度3-30公尺;對於歐洲使用eu-dem高程,精度30公尺;對於澳洲使用australia srtm-derived 1 second dem高程,精度30公尺;對於-60至60緯度段使用cgiar srtm高程,精度90公尺;對於整個地球使用gtopo30,精度1000公尺。stk world terrain地形是怎樣生成的是不公開的,如需應用於封閉的區域網時,則需購買agi的stk terrain server。但是agi提供了乙個webapi可供網際網路上呼叫,並提供了這種地形的格式細節,期待早日有高手作出乙個轉換工具。

small terrain是中等高解析度,基於heightmap的地形,渲染出的地形效果不如quantized mesh的地形,但也基本能接受

。網上已經有一些開源的生成工具可以由dem資料生成這種規範的.terrain檔案,因此我們重點討論這種型別的地形。

生成工具是cesium googlegroup裡乙個**人提供的gdal2srtmtiles.py(需要gdal庫和numpy。

具體用法 python gdal2srtmtiles.py --cesium  -z 0-15 -p geodetic 『yn_dem.tif', 'i:\\tilescache\\terrain_tiles'

yn_dem.tif是輸入地形原始檔,是乙個geotiff格式的高程資料,網路上有很多免費的高程資料,比較著名的srtm90的,aster30的,都可以用作輸入的地形資料來源。terrain_tiles是生成的地形瓦片所在的目標目錄,

-z 0-15引數表示zoom為0到15級,級別越高越詳細,資料量也越大。-p geodetic暫時不知道,估計與投影相關,--cesium表示生成cesium特定的地形。生成過程時間長短與源資料的大小有關,樓主的yn_dem.tif覆蓋雲南全境的30公尺精度aster dem,1g多大小,頭一天下班時執行,第二天下午生成完畢,8g多的瓦片,0-15級。

每個目錄下都有.terrain,.hdr,.kml三種檔案,我們只用到.terrain檔案。

client端就更簡單了,viewer中有個terrainprovider屬性,直接new乙個cesiumterrainprovider就行。

var viewer = new cesium.viewer('cesiumcontainer',)

});

ps:heightmap

的地形總體上來說基本還原了地球表面應有的高低起伏,有些區域會有一些橫斷面像刀切一樣失真,在一些對細節不是很在意的應用中還是很有吸引力的。

cesiumjs開發實踐 七

摘要 cesium中支援載入3d模型,不過只支援gltf格式。cesium中支援載入3d模型,不過只支援gltf格式。gltf是khronos組織 起草opengl標準的那家 定義的一種交換格式,用於網際網路或移動裝置上展現3d內容,充分支援opengl,webgl,opengles圖形加速標準。g...

實踐報告 Linux實踐四

1.elf全稱executable and linkable format,可執行連線格式,elf格式的檔案用於儲存linux程式。elf檔案 目標檔案 格式主要三種 一般的 elf 檔案包括三個索引表 elf header,program header table,section header t...

ChatBot framework 開發實踐

通常而言,通用聊天機械人 比如小冰等 底層技術是採用類似seq2seq等 生成 技術的。但是這種機械人屬於探索性質,無法 提供特定的服務。而siri則是兼具閒聊以及垂直領域功能的,比如可以預約提醒,打 定餐廳等特定功能。相信siri在實現特定預約提醒,打 功能等,則是使用了 語言模板 匹配技術以及結...