我使用的nginx的代理服务器存储了我的数据,然后URL指向的是我的tilesJson文件,并且我使用nginx打开网页也能完整显示我的文件的结构和内容,但是我在Cesium1.108的源码中的helloWorld.html中改写了,将我的URL替换进去并且加入了必需的一些代码,但是无法渲染,只会出现一个地球。请问这是什么原因?我f12查看源码也没有任何问题,渲染的地球下面也没有报错,只会显示升级以用来商用。
没有问题啊,你把模型添加到场景了吗?
(1)nginx配置
location /3dtiles/ {
root html; # 文件夹在html目录下
autoindex on; # 根据需求,可以开启或关闭目录索引
# 添加CORS头部
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
}
(2)加载模型:
let tileSetModel = new Cesium.Cesium3DTileset({
url: "http://localhost:8081/3dtiles/tileset.json"
});
// 加载3D瓦片集模型
tileSetModel.readyPromise
.then(tileset => {
// 将模型添加到场景中
viewer.scene.primitives.add(tileset);
// 调整视角至模型位置
viewer.zoomTo(
tileset,
new Cesium.HeadingPitchRange(
0.5,
-0.2,
tileset.boundingSphere.radius * 1.0
)
);
})
显示:
我想请问一下您这是3dtiles1.1还是1.0呢,因为我看好像1.1加了个隐式分割的拓展,然后后续就用不到boundingVolume这个变量和children变量,所以我的tilesJson的数据的格式可能和您有所出入,谢谢您的回答