背景:項目前端使用Cesium,地形服務一直使用外網的,經常由於FQ訪問的問題,致使地形數據取不到,進而致使地球不能加載,故決定搭建本身的地形服務,完全解決這個問題。博文包含如下幾個過程:前端
下載原始地形數據,格式爲.tif。
處理地形數據,將零散的地形文件整合成一個地形文件。
配置CTB環境
使用ctb-tile指令將地形文件(.tif)加工成.terrain文件。
發佈地形服務並使用Cesium調用。json
1、下載原始地形數據服務器
下載地址(精度90m):
http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp
若是你恰好須要的也是全國地形,能夠從樓主網盤下載,更快更方便(密碼zyt9):https://pan.baidu.com/s/1YYC25b48QAVb64mW77vCEw
網盤包含兩部份內容:工具
dem.rar:原始數據,須要自行使用ArcMap工具整合。
合併後的數據:通過ArcMap工具處理的數據,已經整合成了一個地形文件,能夠直接跳到第三步。
在網站下載流程:
一、打開網頁http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp。如圖:網站
二、根據須要選擇方便的選取方式:spa
MutilpleSelection:點擊哪一個選哪一個,能夠選擇多個,雙擊取消。
EnableMouseDrag:框選,框選了什麼範圍就是什麼範圍。
InputCoordinates:輸入最西,最東。最南,最北的座標來下載該範圍內的全部數據。.net
三、選擇好範圍後,點擊「Click here to Begin Search」,進入下一步。3d
四、能夠看到剛剛選擇了幾個數據,點擊每一個數據的DownLoad,下載數據(這個地方比較繁瑣,須要耐心)。rest
五、下載完數據後解壓全部的壓縮包,並將tifwen文件拷貝到統一的文件夾內,這裏的內容和我網盤中的dem.rar是同樣的code
2、處理地形數據
因爲CTB工具不支持DEM爲NoData值和float的數據,因此須要對數據進行處理。
我使用的是ArcGis10.5,打開ArcMap:
這個處理過程好久,能夠在Result面板裏查看轉換過程。成功後,處理NoData值,處理公式爲:
Con(IsNull("xxxx.tif"),0,"xxxx.tif")//xxxx.tif對應你的合併後的文件
3、配置CTB環境
4、使用CTB生成.terrain文件:
注意:執行前請確保輸出文件夾存在且是空的,同時保證磁盤有足夠的空間,全球數據大約800G。生成瓦片的等級不要過高,中國範圍內單18級就須要大約700G。
打開cmd控制檯,輸入指令如:
ctb-tile -o D:\terrain\china\terrain -s 14 -e 0 -r nearest -c 4 C:\Users\Administrator\Documents\ArcGIS\dem_result\noData\new.tif
這個過程更加費時間,須要等待好久,直到執行結束。
5、發佈並使用Cesium調用