首页 / 浏览问题 / 三维GIS / 问题详情
Plugin中 三维模型中对象更改颜色
17EXP 2017年02月28日
function ChangeColor(){
                var layer3Ds = scene.get_layer3Ds();
                layer3D = layer3Ds.get_item(0);
                selection3Ds = scene.findSelection3Ds(true);
                if (selection3Ds.length === 0) {
                    alert("没有对象被选中。");
                    return;
                }
                if (selection3Ds !== null) {
                    var id = selection3Ds[0].get_item(0);
                    selection3Ds[0].removeAll();
                    var feature3D = layer3D.findFeature3DByID(id);
                    
                    var regionRed = Number(document.getElementById("regionRed").value);
                    var regionGreen = Number(document.getElementById("regionGreen").value);
                    var regionBlue = Number(document.getElementById("regionBlue").value);
                        
                    var style = new SuperMap.Web.Core.Style3D();
                    //style.set_lineWidth(10003);
                    style.set_fillForeColor(new SuperMap.Web.Core.Color(regionRed, regionGreen, regionBlue, 100));
                    feature3D.set_style3D(style);

                } else {
                    alert("没有对象被选中。");
                }
            }

代码如上,选中一个对象后触发方法,对象的颜色没有改变。请问怎么能实现该方法? 谢谢

1个回答

您好,请问你获取的是什么对象,场景有没有生成缓存?
3,389EXP 2017年02月28日
是的,我两个场景一个是矢量缓存,一个是OSGB缓存的。但是都没有效果的

layer3D.setObjectsColor(a,new SuperMap.Web.Core.Color(regionRed, regionGreen, regionBlue, 255));

第一个参数 a  要是一个数组哦,您的是数组吗?

var a=[Number(id)];

layer3D.setObjectsColor(a,new SuperMap.Web.Core.Color(regionRed, regionGreen, regionBlue, 255));

是的啊,还有别的什么情况会导致这个问题么?

加你QQ远程看下。
远程测试是OSGB图层的对象是可以修改颜色的。
...