首页 / 浏览问题 / 三维GIS / 问题详情
矢量数据生成的模型,在设置Style3D的透明度为0以后,无法选取目标了?
35EXP 2020年12月29日

承接之前的 关于Mouse_Move的问题:

http://qa.supermap.com/80838

==================================

如何MouseMove事件中拿到矢量生成的模型数据集?
我使用矢量数据生成了模型数据集,缓存以后,发布到iServer。
我想在鼠标移动的时候,移动到某一个模型数据集以后,改变改模型的颜色,而不是通过点击事件来查询,请问这可以实现吗?

======================================

在实现当中 采用 viewer.scene.pick(position) 可以拿到 move 监听是的 s3m 对象,并通过设置 selectedColor 来实现对象选中之后的颜色设置。

问题来了,由于我的系统当中是 添加了倾斜摄影数据作为基础,再添加了矢量模型的盒子在倾斜摄影之外,为了保证显示效果,需要将拉伸的模型的盒子设置到 透明: vectorLayer.style3D.fillForeColor.alpha = 0;

但是如果一旦这么设置,那么 move 的监听就 pick 不到对象了,但是依旧可以通过 click 事件 pick 到对象,

所以想问下是否有其他设置方法,可以保证既可以 透明 掉模型(不是不显示),但是可以保证 move 事件也能响应。

1个回答

您好,move监听pick对象的原理是获取到对象当前的屏幕坐标然后调用scene.pick(position),现在图层透明了就拿不到对应得屏幕坐标了,也就pick()不到对象。您那边是否能考虑一下模型单体化的方式来实现这个功能,可以参考一下范例:http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#dynamicDTH

6,087EXP 2020年12月29日
嗯,目前看来,只有这一个途径试试看了。我担心的主要原因就是调用后台接口,前端的交互查看效果比较慢。
请问您,demo 当中的数据查询的接口有相关API文档吗?

下面这一个

 // 方法一,通过数据服务的形式添加单体化标识面
        // (推荐使用)
        var dataServiceUrl = 'http://www.supermapol.com/realspace/services/data-dynamicDTH/rest/data/featureResults.rjson?returnContent=true'; // 数据服务URL

查看iServer帮助文档,搜索featureResults,在线API:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/index.htm

...