1. 程式人生 > >CesiumLab V1.1 新功能 (免費Cesium處理工具集)

CesiumLab V1.1 新功能 (免費Cesium處理工具集)

Cesiumlab 自從上週(3月20日)釋出之後,贏得小夥伴一致好評。

本週繼續推出重大更新:

 建築物向量資料 轉 3dtiles,

 建築物向量資料 轉 3dtiles,

 建築物向量資料 轉 3dtiles, 重要的事情說三遍嘛。

廢話少說,先上圖,效果就是這樣滴

 

  預設樣式

 

  按高程著色樣式  
處理介面

 

下來我們介紹一下建築物轉3dtiles的工具特點:

1,輸入支援shp格式 

          其它gdal支援的向量形式,理論上也支援,個人沒有測試,小夥伴有時間可以自己測

        要求檔案帶投影資訊(一般shp的投影存在同名的prj檔案),或者在cesiumlab中手動指定檔案投影

        3857的web 墨卡託投影測試過,其它投影請自測

2,支援可選的欄位屬性 存入3dtiles batchtable中

      1)字串欄位 中文尤其注意,如果帶中文,請在cesiumlab選擇對應的中文編碼(utf8 或者 gbk)

      2)可以把shp中非字串型別,但實際為數字的欄位轉數字

3,支援處理過程中實時取地形高程,這樣3dtiles和地形更匹配    

       支援從多個地形檔案中取,使用者就不需要去合併dem了。

4,其他細節   

        支援中文utf8或者gbk編碼選擇

       支援高程欄位設定

其它更新:

     3dtiles預覽介面 增加了 樣式編輯器,很方便的檢視資料效果

 

碼農乾貨:

1, 關於3dtiles的標準,最全的要看這裡

https://github.com/AnalyticalGraphicsInc/3d-tiles/blob/master/TileFormats/Batched3DModel/README.md

     但是這個裡面有些資訊還是比較老的,比如對於b3dm的格式解析,他上面寫的支援的是 gltf 1.0版本,而且我下載cesium官網的3dtiles資料,發現都是1.0版本,我以為只支援1.0,所以花了大半天自己去實現gltf1.0的組織(主要是tinygltf支援的2.0)。

     後來再次谷歌,搜到cesium的官方部落格,已經說明支援2.0了,所以又用tinygltf去實現2.0。

    tinygltf 的 github:

https://github.com/syoyo/tinygltf

    說實話,tinygltf的程式碼質量一般,不過方便的是它一個頭檔案就搞定了引用。

 

2,gltf的標準

  1.0  https://github.com/KhronosGroup/glTF/blob/master/extensions/README.md

   2.0  https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#glb-file-format-specification

   對比後發現,2.0最大的改進就是去掉了煩人的1.0的name引用,採用索引引用,想組織一個1.0的模型,起個名就會讓人崩潰。

  符合2.0的官方示例模型:

https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0

 

3,最後推薦一個c++程式設計師的json庫,超級好用

https://github.com/nlohmann/json

     這個庫有個坑,就是必須utf8編碼處理,如果gbk,嘿嘿,絕對崩潰,這個問題給我帶來好多次莫名其妙的bug,讓我腦細胞死一大片

 

最後:

Cesiumlab是一款專為Cesium開源數字地球平臺打造的免費資料處理工具集。目前包含地形資料處理、影像資料處理、點雲資料處理、資料下載、建築物向量面處理等幾大工具。同時提供一套java開發的資料伺服器。形成從資料處理、服務釋出、到程式碼整合的完整工具鏈。希望它能幫到您,歡迎反饋交流。