首页 / 浏览问题 / WebGIS / 问题详情
能否通过layer获取对应的数据信息
5EXP 2020年07月30日
我现在一个场景里面有多个layer,想通过各个layer获取对应的数据集相关信息。

能否通过scene.layers._layers中的layer获取该layer中的数据服务url、数据源名称和数据集名称

1个回答

您好,通过scene.layers._layers是可以获取到您上述的这些属性的,您可以在控制台打印输出scene.layers._layers查看对应的数据服务url、数据源名称和数据集名称的获取方式
6,077EXP 2020年07月30日
查看了 没有这些信息啊 能不能发个图给我看下 谢谢

_baseUri下面的path就是对应的数据服务地址

数据源名称和数据集名称这些呢?
我问题是这样的,我有一个场景,里面有多个图层,图层里模型的点击事件,必须要设置查询参数,设置查询参数里就得知道对应的数据服务url、数据源名称和数据集名称,数据服务url是同一个,我想通过在每个图层获取对应的数据源名称和数据集名称,这样方便以后新增图层信息,方便扩展,主要代码是: layerWcc = scene.layers.find('wcc3@myCBD');

  //设置查询参数

            layerWcc.setQueryParameter({

                url: dataURL,

                dataSourceName: "CBD",

                dataSetName: "wcc3",

                keyWord: 'SmID'

            });

  //注册鼠标点击事件

        viewer.pickEvent.addEventListener(function(feature){

            

            //选中的当前图层

            currentLayer=scene.layers.getSelectedLayer();

            });

建议您重新批量生成缓存,只生成一个.scp文件再发布rest服务,获取数据源数据集名称可以参考范例http://support.supermap.com.cn:8090/webgl/examples/editor.html#S3MTiles_BIM

我还想问下,我现在有数据服务和三维服务,三维服务里面的三维图层列表(如:a@b)是不是就是数据服务里面的 数据集列表@数据源,如果是这样我就可以直接用三维图层名称来进行拆分获取对应的数据集和数据源
如果您那边没有对图层进行重命名操作的话默认的命名方式是这样的--数据集@数据源
这个我看了下 可以重命名 这样操作就不得行,意思是三维图层里的图层信息没法自动和数据服务里的数据信息进行对应啊,只能我手动把这两个关联起来吗?
我的意思是您那边将数据集添加到场景中,默认的命名方式就是     数据集名称@数据源名称,不需要去重命名,在前端js代码中通过@符号截断图层名就可以得到图层对应的数据集名称和数据源名称
...