提交 b4e8945b 编写于 作者: S sushuang

add data.

上级 bfc138af
此差异已折叠。
...@@ -52,9 +52,9 @@ function linkList(opt) { ...@@ -52,9 +52,9 @@ function linkList(opt) {
// Only mainData trigger change, because struct.update may trigger // Only mainData trigger change, because struct.update may trigger
// another changable methods, which may bring about dead lock. // another changable methods, which may bring about dead lock.
each(mainData.CHANGABLE_METHODS, function (methodName) { // each(mainData.CHANGABLE_METHODS, function (methodName) {
mainData.wrapMethod(methodName, zrUtil.curry(changeInjection, opt)); // mainData.wrapMethod(methodName, zrUtil.curry(changeInjection, opt));
}); // });
// Make sure datas contains mainData. // Make sure datas contains mainData.
zrUtil.assert(datas[mainData.dataType] === mainData); zrUtil.assert(datas[mainData.dataType] === mainData);
...@@ -74,10 +74,10 @@ function transferInjection(opt, res) { ...@@ -74,10 +74,10 @@ function transferInjection(opt, res) {
return res; return res;
} }
function changeInjection(opt, res) { // function changeInjection(opt, res) {
opt.struct && opt.struct.update(this); // opt.struct && opt.struct.update(this);
return res; // return res;
} // }
function cloneShallowInjection(opt, res) { function cloneShallowInjection(opt, res) {
// cloneShallow, which brings about some fragilities, may be inappropriate // cloneShallow, which brings about some fragilities, may be inappropriate
......
...@@ -964,13 +964,17 @@ echartsProto.resize = function (opts) { ...@@ -964,13 +964,17 @@ echartsProto.resize = function (opts) {
zrUtil.assert(!this[IN_MAIN_PROCESS], '`resize` should not be called during main process.'); zrUtil.assert(!this[IN_MAIN_PROCESS], '`resize` should not be called during main process.');
} }
this[IN_MAIN_PROCESS] = true;
this._zr.resize(opts); this._zr.resize(opts);
var optionChanged = this._model && this._model.resetOption('media'); var optionChanged = this._model && this._model.resetOption('media');
var updateMethod = optionChanged ? 'prepareAndUpdate' : 'update'; var updateMethod = optionChanged ? 'prepareAndUpdate' : 'update';
refresh(updateMethod, opts && opts.silent);
};
function refresh(updateMethod, silent) {
this[IN_MAIN_PROCESS] = true;
updateMethods[updateMethod].call(this); updateMethods[updateMethod].call(this);
// Resize loading effect // Resize loading effect
...@@ -978,12 +982,10 @@ echartsProto.resize = function (opts) { ...@@ -978,12 +982,10 @@ echartsProto.resize = function (opts) {
this[IN_MAIN_PROCESS] = false; this[IN_MAIN_PROCESS] = false;
var silent = opts && opts.silent;
flushPendingActions.call(this, silent); flushPendingActions.call(this, silent);
triggerUpdatedEvent.call(this, silent); triggerUpdatedEvent.call(this, silent);
}; }
/** /**
* Show loading effect * Show loading effect
...@@ -1172,14 +1174,22 @@ function triggerUpdatedEvent(silent) { ...@@ -1172,14 +1174,22 @@ function triggerUpdatedEvent(silent) {
echartsProto.addData = function (params) { echartsProto.addData = function (params) {
var seriesIndex = params.seriesIndex; var seriesIndex = params.seriesIndex;
var ecModel = this.getModel(); var ecModel = this.getModel();
var seriesModel = ecModel.getSeries(seriesIndex); var seriesModel = ecModel.getSeriesByIndex(seriesIndex);
if (__DEV__) { if (__DEV__) {
zrUtil.assert(params.data && seriesModel); zrUtil.assert(params.data && seriesModel);
} }
var rawData = seriesModel.getRawData(); var provider = seriesModel.getRawData().getProvider();
rawData.addData(params.data); // .provisionTask.changeInput(params.data);
provider.addData(params.data);
this._scheduler.unfinished = true;
// ??? Should handle this.
// if (!seriesModel.useStream()) {
// refresh('prepareAndUpdate');
// }
}; };
/** /**
......
...@@ -325,8 +325,10 @@ var SeriesModel = ComponentModel.extend({ ...@@ -325,8 +325,10 @@ var SeriesModel = ComponentModel.extend({
var dataCloneTask = dataBeforeProcessed.createCloneShallowTask(); var dataCloneTask = dataBeforeProcessed.createCloneShallowTask();
set(this, 'data', dataCloneTask.output); set(this, 'data', dataCloneTask.output);
// var provisionTask = dataBeforeProcessed.getProvider().provisionTask;
var dataInitTask = dataBeforeProcessed.getInitTask(); var dataInitTask = dataBeforeProcessed.getInitTask();
// this.pipeTask(provisionTask, 'dataProvide');
this.pipeTask(dataInitTask, 'dataInit'); this.pipeTask(dataInitTask, 'dataInit');
this.pipeTask(dataCloneTask, 'dataClone', 'updateBase'); this.pipeTask(dataCloneTask, 'dataClone', 'updateBase');
}, },
...@@ -362,14 +364,15 @@ var SeriesModel = ComponentModel.extend({ ...@@ -362,14 +364,15 @@ var SeriesModel = ComponentModel.extend({
/** /**
* @see {module:echarts/stream/Scheduler} * @see {module:echarts/stream/Scheduler}
*/ */
pipeTask: null pipeTask: null,
// /** /**
// * @public * @public
// */ */
// useStream: function () { useStream: function () {
// return this.streamEnabled && this.option.streamSize > 0; // ???
// } return this.streamEnabled;
}
}); });
zrUtil.mixin(SeriesModel, modelUtil.dataFormatMixin); zrUtil.mixin(SeriesModel, modelUtil.dataFormatMixin);
......
...@@ -12,11 +12,11 @@ var inner = makeInner(); ...@@ -12,11 +12,11 @@ var inner = makeInner();
* @const * @const
*/ */
var STAGE = { var STAGE = {
dataInit: 0, dataInit: 1,
dataClone: 1, dataClone: 2,
processor: 2, processor: 3,
visual: 3, visual: 4,
render: 4 render: 5
}; };
var TAG = { var TAG = {
updateBase: 1, updateBase: 1,
......
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="lib/esl.js"></script>
<script src="lib/config.js"></script>
<script src="lib/jquery.min.js"></script>
<script src="lib/facePrint.js"></script>
</head>
<body>
<style>
html, body, #main {
width: 100%;
height: 100%;
margin: 0;
}
</style>
<div id="main"></div>
<script>
var lngRange = [79.781327, 131.48];
var lngExtent = lngRange[1] - lngRange[0];
var latRange = [18.252847, 52.33];
var latExtent = latRange[1] - latRange[0];
var chunkMax = 100;
var chunkCount = 0;
function genData(count) {
var data = [];
for (var i = 0; i < count; i++) {
data.push([
Math.random() * lngExtent + lngRange[0],
Math.random() * latExtent + latRange[0],
Math.random() * 1000
]);
}
return data;
}
var initData = genData(2001);
require([
'echarts'
// 'echarts/chart/map',
// 'echarts/chart/scatter',
// 'echarts/component/title',
// 'echarts/component/legend',
// 'echarts/component/geo',
// 'echarts/component/visualMap',
// 'echarts/component/markPoint',
// 'echarts/component/tooltip'
], function (echarts) {
require(['map/js/china'], function () {
var chart = echarts.init(document.getElementById('main'));
chart.setOption({
tooltip: {},
legend: {
orient: 'vertical',
left: 'left',
data:['categoryA','categoryB','categoryC']
},
// visualMap: {
// min: 0,
// max: 1500,
// left: 'left',
// top: 'bottom',
// text: ['High','Low'],
// seriesIndex: [1, 2, 3],
// inRange: {
// color: ['#006edd', '#e0ffff']
// },
// calculable : true
// },
geo: {
map: 'china',
roam: true,
label: {
normal: {
show: true,
textStyle: {
color: 'rgba(0,0,0,0.4)'
}
}
},
itemStyle: {
normal:{
borderColor: 'rgba(0, 0, 0, 0.2)'
},
emphasis:{
color: null,
areaColor: null,
shadowOffsetX: 0,
shadowOffsetY: 0,
shadowBlur: 20,
borderWidth: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
},
series : [{
name: 'pm2.5',
type: 'streamScatter',
coordinateSystem: 'geo',
data: initData,
symbolSize: 4,
// symbol: 'rect',
itemStyle: {
normal: {
// color: '#ddb926'
color: '#dda'
}
},
progressive: 100
}]
});
chart.on('click', function (param) {
alert('asdf');
});
next();
function next() {
if (chunkCount++ < chunkMax) {
var newData = genData(1000);
chart.addData({seriesIndex: 0, data: newData});
setTimeout(next, 1000);
}
}
});
});
</script>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="lib/esl.js"></script>
<script src="lib/config.js"></script>
<script src="lib/jquery.min.js"></script>
<script src="lib/facePrint.js"></script>
</head>
<body>
<style>
html, body, #main {
width: 100%;
height: 100%;
margin: 0;
}
</style>
<div id="main"></div>
<script>
var lngRange = [79.781327, 131.48];
var lngExtent = lngRange[1] - lngRange[0];
var latRange = [18.252847, 52.33];
var latExtent = latRange[1] - latRange[0];
var data = [];
// var count = 1000000;
// var count = 450000;
var count = 100000;
// var count = 5000;
for (var i = 0; i < count; i++) {
data.push([
Math.random() * lngExtent + lngRange[0],
Math.random() * latExtent + latRange[0],
Math.random() * 1000
]);
}
require([
'echarts'
// 'echarts/chart/map',
// 'echarts/chart/scatter',
// 'echarts/component/title',
// 'echarts/component/legend',
// 'echarts/component/geo',
// 'echarts/component/visualMap',
// 'echarts/component/markPoint',
// 'echarts/component/tooltip'
], function (echarts) {
require(['map/js/china'], function () {
var chart = echarts.init(document.getElementById('main'));
chart.setOption({
tooltip: {},
legend: {
orient: 'vertical',
left: 'left',
data:['categoryA','categoryB','categoryC']
},
// visualMap: {
// min: 0,
// max: 1500,
// left: 'left',
// top: 'bottom',
// text: ['High','Low'],
// seriesIndex: [1, 2, 3],
// inRange: {
// color: ['#006edd', '#e0ffff']
// },
// calculable : true
// },
geo: {
map: 'china',
roam: true,
label: {
normal: {
show: true,
textStyle: {
color: 'rgba(0,0,0,0.4)'
}
}
},
itemStyle: {
normal:{
borderColor: 'rgba(0, 0, 0, 0.2)'
},
emphasis:{
color: null,
areaColor: null,
shadowOffsetX: 0,
shadowOffsetY: 0,
shadowBlur: 20,
borderWidth: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
},
series : [{
name: 'pm2.5',
type: 'streamScatter',
coordinateSystem: 'geo',
data: data,
symbolSize: 4,
// symbol: 'rect',
itemStyle: {
normal: {
// color: '#ddb926'
color: '#dda'
}
},
progressive: 100
}]
});
chart.on('click', function (param) {
alert('asdf');
});
});
});
</script>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册