Cesiumlab 自從上週(3月20日)發佈以後,贏得小夥伴一致好評。java
本週繼續推出重大更新:c++
建築物矢量數據 轉 3dtiles,git
建築物矢量數據 轉 3dtiles,程序員
建築物矢量數據 轉 3dtiles, 重要的事情說三遍嘛。github
廢話少說,先上圖,效果就是這樣滴!web
下來咱們介紹一下建築物轉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.03,
最後推薦一個c++程序員的json庫,超級好用https://github.com/nlohmann/json 這個庫有個坑,就是必須utf8編碼處理,若是gbk,嘿嘿,絕對崩潰,這個問題給我帶來好屢次莫名其妙的bug,讓我腦細胞死一大片
最後:
Cesiumlab是一款專爲Cesium開源數字地球平臺打造的免費數據處理工具集。目前包含地形數據處理、影像數據處理、點雲數據處理、數據下載、建築物矢量面處理等幾大工具。同時提供一套java開發的數據服務器。造成從數據處理、服務發佈、到代碼集成的完整工具鏈。但願它能幫到您,歡迎反饋交流。
————————————————
版權聲明:本文爲CSDN博主「Cesium實驗室」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/weixin_43805235/java/article/details/84847246json