首页 / 浏览问题 / 三维GIS / 问题详情
官网webGL 的BIM示例问题
581EXP 2019年04月07日

为什么官网的BIM示例有添加BIM的代码却不显示bing地图?早前点击建筑有气泡弹出为什么现在没有?

http://support.supermap.com.cn:8090/webgl/examples/editor.html#S3MTiles_BIM

1个回答

您好,bing地图已经显示了。

您把第119行代码修改为 【dataSourceName : 'BIMBuilding',  】然后点击运行就可以了
6,215EXP 2019年04月08日

有几个疑问,我的理解如下图所示:替换1,2,3处即可展示自己的东西,包括3处的DataSource。1处代表的是缓存场景;2处代表的是查找1中的缓存图层BIMbuilding;3处与1和2没任何关系,就是一个三维数据集的数据服务。请问我的理解是否正确?

对,如果位置一样的话,可以这么理解。

我把3个参数换了,为什么点击我的模型没有气泡?如下图,1为场景,2为场景的缓存图层(展开地址为http://localhost:8091/iserver/services/3D-scene1/rest/realspace/scenes/scene1/layers/aaa@t3),3为同一工作空间的原始模型数据源(展开地址为http://localhost:8091/iserver/services/data-scene1/rest/data/datasources/t3/datasets/aaa)。请问我的参数哪里有误吗?

用console.log看一下点击pick事件触发没有,如果没有触发,那就说明没绑定上数据
没有触发,请问是哪里有的问题?当前发布的三维工作空间场景里都是缓存图层,场景名为scene1,另外还有一个名为t3的数据源,里面有原始模型aaa数据集。
一般缓存图层的名称都为“xxx@yy”,含有@符号,很好奇官网的为什么直接是BIMBuilding.
scene.layers.find找的是点击的图层名,您点击哪个图层,就写哪个图层的名字

dataSourceName是数据源名称

没有触发的话就是没绑定上数据
我把数据发给你麻烦你帮忙看看(见超链接),调试通后麻烦粘贴上关键代码到这里。

工作空间:sm.smwu

模型位置为昆明长水机场。

链接:https://pan.baidu.com/s/12cUoaRZ81lmiKT5LwkyRYA
提取码:u5os
var viewer = new Cesium.Viewer('cesiumContainer');
            var scene = viewer.scene;
            var infoboxContainer = document.getElementById("bubble");
                viewer.customInfobox = infoboxContainer;
            var layer;
            var promise =  scene.open("http://localhost:8091/iserver/services/3D-Ground-CBD/rest/realspace");

            //相机设置
            Cesium.when(promise,function(layer){
                viewer.camera.setView({
                    destination : Cesium.Cartesian3.fromDegrees(116.42774386919069 ,39.932657418004887, 15000.0)
                    });
                layer = scene.layers.find("Building@CBD");
   
            //设置查询参数
                layer.setQueryParameter({
                url:'http://localhost:8091/iserver/services/data-Ground-CBD/rest/data',
                dataSourceName:'CBD',
                dataSetName:'Building'
                });
                });

            //添加拾取事件
            viewer.pickEvent.addEventListener(function(feature){
                console.log(1);          
            });

您照着您的,把我这里面的参数改了,看看F12结果里有没有打印1

谢谢!照着你的写法写可以了。

但我很好奇为什么官网的示例没有传参数  dataSetName:'Building'  进去也能绑定成功,建议把官网的示例代码也改了吧。
dataSetName可以不写,这个影响不大
...