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.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/84847246