Cesium 学习记录(3) 在地图上放置3D建筑模型

Cesium的学习搁置了两天,今天准备来研究一下在地图上放置3D建筑模型。

为什么要加载3D建筑模型呢?当然是因为项目没有数据啦!对于有条件倾斜摄影无人机建模,或者谷歌地球上直接有模型的,就不用这么苦恼啦~

纠结了很久,我还是决定现阶段先用效率极低的办法——建模+导入。

因为目前只是需要一个大概的建筑环境,而不需要逼真详细的三维模型,所以先使用SketchUp参考卫星图和全景图进行建模或是修改模型库里的模型,然后放置在地图上。后续希望可以摸索一下批量化的加载。

一、准备阶段

    1、准备模型

    首先在SketchUp吧或者论坛去下载最新版本的SketchUp【建模工具】,以及一些可以用的模型,导出为dae格式。(用3Dmax导出也可以哒)

    2、格式转换

    在github上下载格式转换工具collada2gltf https://github.com/KhronosGroup/glTF/releases
    我也上传了一份方便大家下载(毕竟github经常被墙或者打开很慢~)
-f表示dae文件的完成路径,collada2gltf支持两种转换方式,-e及-o,-e转换后只生成一个文件(gltf文件),在模型比较大时我们可将模型与纹理贴图分开加载,这时可用-o命令进行转换,转换后会生成.gltf、.bin及.glsl三种格式的文件

   【gltf模型转换工具下载地址】http://download.csdn.net/download/zlx312/10032125

    下载成功后解压,打开CMD命令行,拖入collada2gltf.exe得到路径,后面加上-f,再拖入dae格式文件得到路径,后面加上-e,然后执行  ~~

    示例:E:\ collada2gltf.exe -f E:\Model\zhuzhai.dae -e

    【注意: -f表示dae文件的完成路径,collada2gltf支持两种转换方式,-e及-o,-e转换后只生成一个文件(gltf文件),在模型比较大时我们可将模型与纹理贴图分开加载,这时可用-o命令进行转换,转换后会生成.gltf、.bin及.glsl三种格式的文件。】

二、小试牛刀

    首先讲我们的贴图文件夹和导出后的,gltf文件一起放到工程下面。

    然后将把下面这段简洁的代码放在之前的代码后面就可以啦~

    uri是模型文件的路径,position后面就是我们需要放置模型的经纬度(虽然比起建模软件直接拖动还是很不方便)

		var entity = viewer.entities.add({
			position : Cesium.Cartesian3.fromDegrees(112.07, 35.05),
			model : {
				uri : 'zhuzhai.gltf'
			}
		});
		viewer.trackedEntity = entity;
    启动服务进行发布,就可以看到一个初步的效果啦(竟然还自动贴地?真是省事了不少~暗暗窃喜)
Cesium 学习记录(3) 在地图上放置3D建筑模型_第1张图片

但是一个一个模型放置总是麻烦的,后面希望可以探索出来批量放置的方法~
这个地方比较小,也没有任何的三维数据资料,有条件的话还是无人机航拍三维建模比较好~

你可能感兴趣的:(web,gis)