apache / echarts

Apache ECharts is a powerful, interactive charting and data visualization library for browser
https://echarts.apache.org
Apache License 2.0
60.44k stars 19.61k forks source link

如何将两段lines的effect动画衔接起来 #7930

Closed shadowzeng closed 4 years ago

shadowzeng commented 6 years ago

One-line summary [问题简述]

想实现车辆轨迹效果,类似模拟迁徙示例中飞机图标移动的动画,在第一次setOption的effect动画播放结束后,再添加部分数据形成下一段轨迹线,然后再次播放,如何控制第二次setOption后图标动画是从起点开始播放,从而和第一次播放衔接起来

Version & Environment [版本及环境]

Expected behaviour [期望结果]

实现车辆沿着动态增加的轨迹数据移动

ECharts option [ECharts配置项]

option = {
bmap: {
                    center: [xxxxxxxxxx,yyyyyyyyy],
                    zoom: 17,
                    roam: true,
                    mapStyle: bdmapstyle
                },
                series: [{
                    type: 'lines',  
                    coordinateSystem: 'bmap',
                    polyline: true,
                    data: [],
                    lineStyle: {  
                        normal: {
                            width: 3,
                            color: "#ff0000",
                            opacity: 0.6
                        }
                    },
                    effect: {   
                        //constantSpeed: 40,  
                        period: 10,
                        show: true,   
                        delay: 0,    
                        trailLength: 0,  
                        symbol: 'image://car.png',
                        symbolSize: [53,53],
                           loop: false
                    },
                    zlevel: 2  
                }]
}

Other comments [其他信息]

image image 在setOption设置显示下一段轨迹线后,动画都已经到了结尾处了,如何从下一段轨迹线的起点开始

ZhuGYao commented 6 years ago

添加timeline,用timeline进行设置,我目前也在做和你差不多的东西。我这个更麻烦。咱们可以相互交流一下。

jobin-sun commented 6 years ago

我也有这个需求,可以分享下解决方案吗

GreenLv commented 5 years ago

可以通过修改数据形式来实现。循环里写data的时候不要只写data的增量,应该把以前的轨迹data也带上。举个例子,在第i次循环里,传入的数据应该是data[0:i],而不只是data[i]。

nongzhenli commented 5 years ago

可以通过修改数据形式来实现。循环里写data的时候不要只写data的增量,应该把以前的轨迹data也带上。举个例子,在第i次循环里,传入的数据应该是data[0:i],而不只是data[i]。

请问下,修改data后,是否需要动态的setOption()呀?我遇到的需求类同,现在就是通过setOtion()。但是Lines线条会出现闪烁的效果(一触发更新就闪下...),现在遇到这个问题一直没能解决

nongzhenli commented 5 years ago

@GreenLv

GreenLv commented 5 years ago

可以通过修改数据形式来实现。循环里写data的时候不要只写data的增量,应该把以前的轨迹data也带上。举个例子,在第i次循环里,传入的数据应该是data[0:i],而不只是data[i]。

请问下,修改data后,是否需要动态的setOption()呀?我遇到的需求类同,现在就是通过setOtion()。但是Lines线条会出现闪烁的效果(一触发更新就闪下...),现在遇到这个问题一直没能解决

之前我是用timeline+setOption()实现的,需要动态setOption(),只是把data改了一下而已,其他和普通的操作一样。你这种情况我没遇到过,不知道怎么解决。

HibernatingBear commented 3 years ago

可以通过修改数据形式来实现。循环里写data的时候不要只写data的增量,应该把以前的轨迹data也带上。举个例子,在第i次循环里,传入的数据应该是data[0:i],而不只是data[i]。

请问下,修改data后,是否需要动态的setOption()呀?我遇到的需求类同,现在就是通过setOtion()。但是Lines线条会出现闪烁的效果(一触发更新就闪下...),现在遇到这个问题一直没能解决

请问你这个问题解决了吗,我跟你是一样的问题,setOption的就会导致lines的effect动画停顿一下