ScatterView.js 1.2 KB
Newer Older
S
sushuang 已提交
1 2 3
import echarts from '../../echarts';
import SymbolDraw from '../helper/SymbolDraw';
import LargeSymbolDraw from '../helper/LargeSymbolDraw';
L
lang 已提交
4

S
sushuang 已提交
5
echarts.extendChartView({
L
lang 已提交
6

S
sushuang 已提交
7
    type: 'scatter',
L
lang 已提交
8

S
sushuang 已提交
9 10 11 12
    init: function () {
        this._normalSymbolDraw = new SymbolDraw();
        this._largeSymbolDraw = new LargeSymbolDraw();
    },
L
lang 已提交
13

S
sushuang 已提交
14 15 16 17 18
    render: function (seriesModel, ecModel, api) {
        var data = seriesModel.getData();
        var largeSymbolDraw = this._largeSymbolDraw;
        var normalSymbolDraw = this._normalSymbolDraw;
        var group = this.group;
L
lang 已提交
19

S
sushuang 已提交
20 21
        var symbolDraw = seriesModel.get('large') && data.count() > seriesModel.get('largeThreshold')
            ? largeSymbolDraw : normalSymbolDraw;
L
lang 已提交
22

S
sushuang 已提交
23 24 25
        this._symbolDraw = symbolDraw;
        symbolDraw.updateData(data);
        group.add(symbolDraw.group);
L
lang 已提交
26

S
sushuang 已提交
27 28 29 30 31
        group.remove(
            symbolDraw === largeSymbolDraw
            ? normalSymbolDraw.group : largeSymbolDraw.group
        );
    },
L
lang 已提交
32

S
sushuang 已提交
33 34 35
    updateLayout: function (seriesModel) {
        this._symbolDraw.updateLayout(seriesModel);
    },
L
lang 已提交
36

S
sushuang 已提交
37 38 39
    remove: function (ecModel, api) {
        this._symbolDraw && this._symbolDraw.remove(api, true);
    },
40

S
sushuang 已提交
41
    dispose: function () {}
L
lang 已提交
42
});