1,使用Blender创建模型:
官网下载Blender:https://www.blender.org/,在Github上下载Building Tools插件,通过编辑-偏好设置-插件-安装,导入压缩包使用,这个可以自己创建小房子,文件-导出为obj格式
2,将.obj转成3dtiles格式:
1,第一种方法通过加载本地文件展示:
1,github下载ObjTo3d-tiles包,使用
obj23dtiles -i demo房子.obj -p options.json --tileset
其中的options是一个配置文件,关于这个模型在地图上的位置等信息
{
"longitude": 2.0962338569,
"latitude": 0.6295642397,
"transHeight":0.0,
"geometricError":200.0,
"region": true,
"box":false,
"sphere":false
}
会生成两个文件.b3dm和目标json文件
2,Cesium使用3dtiles:
let tile = viewer.scene.primitives.add(
new Cesium.Cesium3DTileset({
url: "http://localhost:3000"
})
)
这个url可以写文件的位置,但是我这里直接使用会出现404,就写了一个代理:
var express = require('express')
var app = express()
app.use(express.static('public'))
app.get('/', function (req, res) {
res.sendFile(__dirname + '\\public' + '\\tileset.json')
})
app.listen(3000, function () {
console.log('3000')
})
2,还可以通过在Cesium ion中添加本地文件的方式,通过id使用模型:
add本地.obj,选择文件上传
完成后右侧会提示没有配置地图的相关信息,点击这个提示去配置
选择底图类型,三维还是水平
最后通过点击或者使用经纬度进行定点并设置大小,保存就可以了:
url改成:
url : Cesium.IonResource.fromAssetId(模型ID)