首页 / 浏览问题 / 云GIS / 问题详情
怎么定义多个featurerendered事件
23EXP 2018年12月19日
您好

 我的动画图层通过循环定义了多个

vectorLineLayer[iVectorLineVector] = new SuperMap.Layer.Vector(svectorName);
                                    vectorLineLayer.style = {
                                            strokeColor: "yellow",
                                            strokeOpacity: 0.7,
                                            strokeWidth: 8,
                                            strokeLinecap: "round",
                                            strokeDashstyle: "solid"
                                        }
                                    animatorLineVector[iVectorLineVector] = new SuperMap.Layer.AnimatorVector(sName, {
                                        needRecordDrawedFeature: true
                                    }, {
                                        speed: 0.1,    
                                        startTime: 0,
                                        endTime: 100
                                    });
                                    map.addLayers([vectorLineLayer[iVectorLineVector], animatorLineVector[iVectorLineVector]]);

请问怎么样去定义多个featurerendered事件,也就是说,我每一个animatorLineVector图层定义一个featurerendered事件,现在我用的是animatorLineVector[ianimatorLineVector].events.on({"featurerendered":drawFrame});,但是只能定义一个,我该怎么样去定义多个?

1个回答

您的意思是"featurerendered":drawFrame这个地方想触发多个function还是说想每个图层的featurerendered事件触发不同的功能
5,668EXP 2018年12月19日
您好

   我是想触发多个featurerendered事件,因为我的动画图层是循环定义的多个,我是想给每一个动画图层触发一个featurerendered事件
您好

  也就是说我有20个车辆动画图层animatorLineVector[0]-animatorLineVector[19],我需要给每个车辆动画图层animatorLineVector实现featurerendered事件,请问我该怎么样去做?

您就分别对每个animatorLineVector设置一个featurerendered事件就可以了啊。类似这种

//初始化汽车图层。
        animatorVector = new SuperMap.Layer.AnimatorVector("Cars", {}, {
            //设置速度为每帧播放0.05小时的数据
            speed: 0.05,
            //开始时间为0晨
            startTime: 0,
            //结束时间设置为最后运行结束的汽车结束时间
            endTime: 55
        });
        animatorVector.events.on({"drawfeaturestart": drawfeaturestart});


        function drawfeaturestart(feature) {
            console.log("1");
            }
        animatorVector1 = new SuperMap.Layer.AnimatorVector("Cars", {}, {
            //设置速度为每帧播放0.05小时的数据
            speed: 0.8,
            //开始时间为0晨
            startTime: 0,
            //结束时间设置为最后运行结束的汽车结束时间
            endTime: 100
        });
    }
        animatorVector1.events.on({"drawfeaturestart": drawfeaturestart});

您好

 我说的20个动画图层是预计的,或许会更多,而且,我也并不知道具体所需动画图层的数量,所以没法去固定写好到底需要多少个featurerendered事件,这个时候我该怎么样去做?
您好

我的车辆数量是通过接口获取的,数量不一定有多少,所以,我是通过循环定义的animatorLineVector[i],所以,我的featurerendered事件没也办法去固定设置到底需要定义多少个,所以我就想请问下该怎么样去定义多个featurerendered事件
那就写个判断语句或者循环吧,这个功能肯定是可以实现,就得自己想办法写个判断和循环了
您好

问题就是该怎么样去循环定义featurerendered事件
您好

 我试过了,没法去定义成函数数组,我该怎么样去循环定义多个事件?
...