首页 / 浏览问题 / 云GIS / 问题详情
WebGL的Viewer.pickEvent事件不触发
39EXP 2021年02月23日

本人已经发布了数据服务和三维服务,并设置了图层的setQueryParameter方法,注册了pickEvent事件,但是点击场景,仍然无法触发该事件,请问是什么原因?

代码如下:

        var scene = viewer.scene;
        var url = "http://localhost:8090/iserver/services/3D-modelCombine/rest/realspace";
        var promise = scene.open(url);
        Cesium.when(promise, function (layers) {
            //设置属性查询参数

            var layer = scene.layers.find("modelCombine");
            layer.setQueryParameter({
                url: 'http://localhost:8090/iserver/services/data-modelCombine/rest/data',
                dataSourceName: 'modelCombine',
                isMerge: true,
                keyWord: 'SmID'
            });
            datainfo(layer);
        }, function (e) {
            if (widget._showRenderLoopErrors) {
                var title = '渲染时发生错误,已停止渲染。';
                widget.showErrorPanel(title, undefined, e);
            }
        });

        //点击对象查询对象属性
        var table = document.getElementById("tab");
        viewer.pickEvent.addEventListener(function (feature) {
            alert("pickEvent事件已生效");
        });

1个回答

您好,您没有设置dataSetName,可参考

   var layer = scene.layers.find('jinjiang');
                //设置属性查询参数
                layer.setQueryParameter({
                    url: 'http://www.supermapol.com/realspace/services/data-jinjiang/rest/data',
                    dataSourceName: 'jinjiang',
                    dataSetName: 'test',
                    keyWord: 'SmID'
                });
1,545EXP 2021年02月23日

类似于S3MTiles_BIM .html,以及下面图片中的方法,我是由多个模型数据集批量生成场景缓存,想实现多个数据集下数据的属性查询

您好,您可以把多个数据集追加到同一数据集中,还是得设置dataSourceName和dataSetName才能查询到。
...