123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- var echarts = require("../../echarts");
- var SymbolDraw = require("../helper/SymbolDraw");
- var LargeSymbolDraw = require("../helper/LargeSymbolDraw");
- var pointsLayout = require("../../layout/points");
- echarts.extendChartView({
- type: 'scatter',
- render: function (seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var symbolDraw = this._updateSymbolDraw(data, seriesModel);
- symbolDraw.updateData(data, {
-
-
-
-
- clipShape: this._getClipShape(seriesModel)
- });
- this._finished = true;
- },
- incrementalPrepareRender: function (seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var symbolDraw = this._updateSymbolDraw(data, seriesModel);
- symbolDraw.incrementalPrepareUpdate(data);
- this._finished = false;
- },
- incrementalRender: function (taskParams, seriesModel, ecModel) {
- this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {
- clipShape: this._getClipShape(seriesModel)
- });
- this._finished = taskParams.end === seriesModel.getData().count();
- },
- updateTransform: function (seriesModel, ecModel, api) {
- var data = seriesModel.getData();
-
- this.group.dirty();
- if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {
- return {
- update: true
- };
- } else {
- var res = pointsLayout().reset(seriesModel);
- if (res.progress) {
- res.progress({
- start: 0,
- end: data.count()
- }, data);
- }
- this._symbolDraw.updateLayout(data);
- }
- },
- _getClipShape: function (seriesModel) {
- var coordSys = seriesModel.coordinateSystem;
- var clipArea = coordSys && coordSys.getArea && coordSys.getArea();
- return seriesModel.get('clip', true) ? clipArea : null;
- },
- _updateSymbolDraw: function (data, seriesModel) {
- var symbolDraw = this._symbolDraw;
- var pipelineContext = seriesModel.pipelineContext;
- var isLargeDraw = pipelineContext.large;
- if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {
- symbolDraw && symbolDraw.remove();
- symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();
- this._isLargeDraw = isLargeDraw;
- this.group.removeAll();
- }
- this.group.add(symbolDraw.group);
- return symbolDraw;
- },
- remove: function (ecModel, api) {
- this._symbolDraw && this._symbolDraw.remove(true);
- this._symbolDraw = null;
- },
- dispose: function () {}
- });
|