首页 / 浏览问题 / WebGIS / 问题详情
渲染时发生错误 已经停止渲染
3EXP 2021年01月19日
按照加载Webgl缓存的教程,编写代码,并用localhost方式访问,加载球面场景没问题,加载发布的三维缓存就出错。

报错 scene.addS3MTilesLayerByScp is not a function

直接访问配置文件的url是可以看到的。这是什么问题。还有加载的话是要转换为S3M的配置文件吗,OSGB的配置文件是否可以呢。感谢解答。

1个回答

您好,您可以试下用官网的示例加载url是否能正常加载三维缓存,如果官网可以您可以下载最新版的WebGL包再试一下:
示例:http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#offset
下载地址:http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=1526

如果官网示例也加载不出来,您可以检查一下代码和引用是否正确,url需要写到/config。如果缓存格式是.osgb,10i之后是不支持的;如果是发布的服务写的类型是OSGB,但是缓存本身是.s3m/.s3mb,这种是可以正常加载的。

jjz
4,720EXP 2021年01月19日
我是用的最新的webgl包,是不是视频教程的版本不对,有些没有引进来。
您可以看下视频的时间,如果您看的是GIS学堂的视频,那边视频有新有旧,可能是以前的9D版本。您可以参照官网的示例进行修改看是否能加载。
视频里使用scene.addS3MTilesLayerByScp加载,官网实例用的:

viewer.imageryLayers.addImageryProvider(new Cesium.BingMapsImageryProvider({
            url : 'https://dev.virtualearth.net',
            mapStyle : Cesium.BingMapsStyle.AERIAL,
            key : URL_CONFIG.BING_MAP_KEY
        })

var promise = scene.open(URL_CONFIG.SCENE_SUOFEIYA);
            Cesium.when(promise,function(layers){
                var layer = scene.layers.find('Config');
                sceneLayer = layer;

修改url 不可以

您看下这个示例,是用的addS3MTilesLayerByScp:
http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#offset

addImageryProvider这一段您可以删掉,影像底图可以不要。

感谢 问题已经解决用这个案例
http://localhost:8090/iserver/iClient/for3D/webgl/zh/examples/webgl/editor.html#S3MTiles_suofeiya

案例中的

var promise = scene.open(URL_CONFIG.SCENE_SUOFEIYA);

改为

var promise = scene.addS3MTilesLayerByScp(
           'url',
           {name : 'xxxx'});

修改url即可

...