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
来源:oschina
链接:https://my.oschina.net/u/4398177/blog/4301074