首页 / 浏览问题 / 桌面GIS / 问题详情
多个udb数据源合成后批量生成缓存生成的scp文件无法快速定位,单个图层可以定位
24EXP 2019年10月12日

多个udb数据源通过追加行的方式合成一个之后,载入到web端之后点击模型中的某个图层并没有触发查看属性的那个函数(viwer.pickEvent.addEventListener这个监听函数没有触发),随后发现打印出scene.layers数组后只有合并时在两个数据源中分别建立的那两个数据集(批量生成缓存也只选择的他们两个,没有加入其它图层)

1个回答

您好,批量缓存之后会生成一个SCP文件,您将这个数据发布三维服务之后,只会有一个图层,您通过s3mtileslayer.datasetInfo() 能够获取到获取图层数据集名称以及对应的Id范围(适用于多数据集生成缓存)。
4,186EXP 2019年10月12日
特征值的设置主要时为了在前端中控制显示和隐藏的,而构件图层列表名称的话您通过数据服务来获取到。您的这种三层图层列表的显示,通过我们批量缓存数据的只能够得到2层的名称,最后一层的名称需要通过其他方法来得到,就是说您在桌面种构建一个属性表,其中输入每一种构件的名称以及对应的特征值名称,再iserver种发布数据服务,然后再前端页面初始化时调用发布的数据服务,来获取到每一种构件的名称以及对应的特征值,通过setCategoriesVisible来控制图层的显示与隐藏。

因为批量缓存只能够获取到批量缓存的图层名称以及其中的每个单独的子图层的名称。

还有一种就是和您之前的一样,您将每一层的构件做批量缓存,就和您之前的做法一致,但是总图层的名称就没有办法直接得到,也只能通过其他的办法来获取到
我要通过sence.layer获取构件属性(主要是要点击构件时获取属性而不是构件的显示隐藏)还是没法获取(即使加了特征值),因为只有那两个新建的合一的图层

您说的点击构件显示属性是在场景种点击某个构件弹出属性吗?这个是可以实现点击构件显示属性的,如果您方便的话,我下午给您调一下代码

如果是构件列表,您是想通过layer来获取到构件的名称的话,您就通过将单个的构件数据集一起批量生成缓存,通过S3mTileslayer.

datasetInfo()

o()来获取到构件

对,我是说这个,但是我是想每个楼层合一之后,即使tree里不能显示单个的构件名称,还可以点击构件显示出来属性(通过追加行的方式再批量生成缓存的这种方法我在layer里没发现有构件图层,因为我的需求是在tree中显示楼层,不用显示楼层下的构件,但是点击画布中的构件可以显示构件属性)。
私信您向日葵了
已在QQ解决
...