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开发的数据服务器。形成从数据处理、服务发布、到代码集成的完整工具链。希望它能帮到您,欢迎反馈交流。
官方qq群产品官网以及下载链接:http://reg.bjxbsj.cn/;