在官方沙盒中可以加载我的模型但是自己写的代码就不行

0 投票

在官方沙盒中可以加载我的模型,但是自己写的代码就不行,根本不会触发Cesium.when(),希望能能得到帮助

沙盒代码

沙盒代码

我的代码

我的代码

4月 8 分类:  260次浏览 | 用户: wrr (8 分)

2 个回答

0 投票
您把官网示例中的代码复制下来,然后改一下引用文件呢?改成您自己的本地引用文件,有报错吗?
4月 8 用户: 赵爽 名扬四海 (4,862 分)

您好,我这边引用的js等文件等都没问题,但是很奇怪的是,我本地代码加载部署在本地的iserver中CBD的模型可以加载,但是加载我自己发布上去的模型就不行了(一开始我发现这种情况我以为是我数据问题,所以去官网加载自己模型试试,结果加载出来了)。下面是我模型地址,请您帮忙看一下。

modelurl = 'http://106.14.205.248:8090/iserver/services/3D-DaXue/rest/realspace'

您好,您是说您在本地,加载您这个模型加载不出来是么?

请问您是怎么打开的那个网页呢?不能直接打开的

还有一个就是,把其他代码注释掉,只保留一个scene.open呢?有没有问题

我看了一下你的模型 没有什么问题

访问地址是ip+端口号访问的,并不是直接当成文件在浏览器中访问的。只留下一个scene.open后还是一样的不行。不过它能读取到这些数据,但是不会像CDB一样加载三维切片。

下面是加载CDB的

您发一下您访问的地址我看一下

cbd链接  大体位置在北京

http://106.14.205.248:8090/untitled/demo-01.html

我自己的链接 大体位置在山东淄博张店区

http://106.14.205.248:8090/untitled/demo-02.html

cbd链接  带有Cesium.when方法的

http://106.14.205.248:8090/untitled/demo-03.html

我自己的 带有Cesium.when方法的

http://106.14.205.248:8090/untitled/demo-04.html

您把camera加上,我找不到
我这边看了一下,山东的没有看到请求啊

嗯,对呀,就是一样的代码换成我自己的模型地址就不行了,但是您可以在 http://support.supermap.com.cn:8090/webgl/examples/editor.html#S3MTiles_jingmo 中,将这个例子的模型的地址替换为我的地址试一下,它可以加载出来T-T(http://106.14.205.248:8090/iserver/services/3D-DaXue/rest/realspace)。

还有我是刚刚初学,还不知道如何编写缩放到图层范围,不过在上面的官网例子中是加载图层后自动缩放过去的,您可以在上面的官网的沙盒中修改代码为这样看看。

function onload(Cesium) {
        var viewer = new Cesium.Viewer('cesiumContainer');
        var scene = viewer.scene;
        try{
            var promise = scene.open('http://106.14.205.248:8090/iserver/services/3D-DaXue/rest/realspace');
            Cesium.when(promise,function(layer){
                
            },function(e){
               
            });
        }
        catch(e){
            
        }

    }  

谢谢您的热心帮助,我这边问题解决了,我之前模型的三维切片格式为S3MBZ,  刚刚我从新生成了一份S3M格式的三维切片,发布这S3M格式的就正常了,然后就能正常显示了。
0 投票
问题已解决:之前缓存切片格式为S3MBZ  ,重新制作了一份S3M格式的缓存切片,使用S3M格式的即可正常显示。iDesktop默认的切片格式就是S3MBZ,需要注意一下。
4月 8 用户: wrr (8 分)
...