Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
x649585723
incubator-echarts
提交
eaa6b44e
I
incubator-echarts
项目概览
x649585723
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
incubator-echarts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
eaa6b44e
编写于
4月 02, 2018
作者:
S
sushuang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix lines update layout in not large but incremental mode.
上级
046a48d4
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
159 addition
and
9 deletion
+159
-9
src/chart/helper/LargeLineDraw.js
src/chart/helper/LargeLineDraw.js
+1
-0
src/chart/helper/LineDraw.js
src/chart/helper/LineDraw.js
+6
-0
src/chart/helper/createRenderPlanner.js
src/chart/helper/createRenderPlanner.js
+2
-2
src/chart/lines/LinesView.js
src/chart/lines/LinesView.js
+2
-1
src/stream/Scheduler.js
src/stream/Scheduler.js
+4
-4
src/view/Chart.js
src/view/Chart.js
+2
-2
test/-cases.js
test/-cases.js
+1
-0
test/lines-stream-not-large.html
test/lines-stream-not-large.html
+141
-0
未找到文件。
src/chart/helper/LargeLineDraw.js
浏览文件 @
eaa6b44e
...
...
@@ -163,6 +163,7 @@ largeLineProto.incrementalUpdate = function (taskParams, data) {
lineEl
.
setShape
({
segs
:
data
.
getLayout
(
'
linesPoints
'
)
});
this
.
_setCommon
(
lineEl
,
data
,
!!
this
.
_incremental
);
if
(
!
this
.
_incremental
)
{
...
...
src/chart/helper/LineDraw.js
浏览文件 @
eaa6b44e
...
...
@@ -87,6 +87,12 @@ function doUpdate(lineDraw, oldLineData, newLineData, oldIdx, newIdx, seriesScop
lineDrawProto
.
updateLayout
=
function
()
{
var
lineData
=
this
.
_lineData
;
// Do not support update layout in incremental mode.
if
(
!
lineData
)
{
return
;
}
lineData
.
eachItemGraphicEl
(
function
(
el
,
idx
)
{
el
.
updateLayout
(
lineData
,
idx
);
},
this
);
...
...
src/chart/helper/createRenderPlanner.js
浏览文件 @
eaa6b44e
...
...
@@ -11,10 +11,10 @@ export default function () {
var
pipelineContext
=
seriesModel
.
pipelineContext
;
var
originalLarge
=
fields
.
large
;
var
originalProgressive
=
fields
.
canP
rogressiveRender
;
var
originalProgressive
=
fields
.
p
rogressiveRender
;
var
large
=
fields
.
large
=
pipelineContext
.
large
;
var
progressive
=
fields
.
canProgressiveRender
=
pipelineContext
.
canP
rogressiveRender
;
var
progressive
=
fields
.
progressiveRender
=
pipelineContext
.
p
rogressiveRender
;
return
!!
((
originalLarge
^
large
)
||
(
originalProgressive
^
progressive
))
&&
'
reset
'
;
};
...
...
src/chart/lines/LinesView.js
浏览文件 @
eaa6b44e
...
...
@@ -82,8 +82,9 @@ export default echarts.extendChartView({
updateTransform
:
function
(
seriesModel
,
ecModel
,
api
)
{
var
data
=
seriesModel
.
getData
();
var
pipelineContext
=
seriesModel
.
pipelineContext
;
if
(
!
this
.
_finished
||
seriesModel
.
pipelineContext
.
large
)
{
if
(
!
this
.
_finished
||
pipelineContext
.
large
||
pipelineContext
.
progressiveRender
)
{
// TODO Don't have to do update in large mode. Only do it when there are millions of data.
return
{
update
:
true
...
...
src/stream/Scheduler.js
浏览文件 @
eaa6b44e
...
...
@@ -90,7 +90,7 @@ proto.getPerformArgs = function (task, isBlock) {
var
pCtx
=
pipeline
.
context
;
var
incremental
=
!
isBlock
&&
pipeline
.
progressiveEnabled
&&
(
!
pCtx
||
pCtx
.
canP
rogressiveRender
)
&&
(
!
pCtx
||
pCtx
.
p
rogressiveRender
)
&&
task
.
__idxInPipeline
>
pipeline
.
bockIndex
;
return
{
step
:
incremental
?
pipeline
.
step
:
null
};
...
...
@@ -112,19 +112,19 @@ proto.updateStreamModes = function (seriesModel, view) {
var
data
=
seriesModel
.
getData
();
var
dataLen
=
data
.
count
();
// `
canP
rogressiveRender` means that can render progressively in each
// `
p
rogressiveRender` means that can render progressively in each
// animation frame. Note that some types of series do not provide
// `view.incrementalPrepareRender` but support `chart.appendData`. We
// use the term `incremental` but not `progressive` to describe the
// case that `chart.appendData`.
var
canP
rogressiveRender
=
pipeline
.
progressiveEnabled
var
p
rogressiveRender
=
pipeline
.
progressiveEnabled
&&
view
.
incrementalPrepareRender
&&
dataLen
>=
pipeline
.
threshold
;
var
large
=
seriesModel
.
get
(
'
large
'
)
&&
dataLen
>=
seriesModel
.
get
(
'
largeThreshold
'
);
seriesModel
.
pipelineContext
=
pipeline
.
context
=
{
canProgressiveRender
:
canP
rogressiveRender
,
progressiveRender
:
p
rogressiveRender
,
large
:
large
};
};
...
...
src/view/Chart.js
浏览文件 @
eaa6b44e
...
...
@@ -189,11 +189,11 @@ function renderTaskReset(context) {
var
api
=
context
.
api
;
var
payload
=
context
.
payload
;
// ???! remove updateView updateVisual
var
canProgressiveRender
=
seriesModel
.
pipelineContext
.
canP
rogressiveRender
;
var
progressiveRender
=
seriesModel
.
pipelineContext
.
p
rogressiveRender
;
var
view
=
context
.
view
;
var
updateMethod
=
payload
&&
inner
(
payload
).
updateMethod
;
var
methodName
=
canP
rogressiveRender
var
methodName
=
p
rogressiveRender
?
'
incrementalPrepareRender
'
:
(
updateMethod
&&
view
[
updateMethod
])
?
updateMethod
...
...
test/-cases.js
浏览文件 @
eaa6b44e
...
...
@@ -39,6 +39,7 @@
'
scatter-gps.html
'
,
'
scatter-weibo.html
'
,
'
lines-flight.html
'
,
'
lines-stream-not-large.html
'
,
'
stream-filter.html
'
,
'
scatter-stream-visual.html
'
]
...
...
test/lines-stream-not-large.html
0 → 100644
浏览文件 @
eaa6b44e
<html>
<head>
<meta
charset=
'utf-8'
>
<script
src=
'lib/esl.js'
></script>
<script
src=
'lib/config.js'
></script>
<script
src=
'lib/jquery.min.js'
></script>
<script
src=
"lib/dat.gui.min.js"
></script>
<meta
name=
'viewport'
content=
'width=device-width, initial-scale=1'
/>
</head>
<body>
<style>
html
,
body
,
#main
{
width
:
100%
;
height
:
100%
;
margin
:
0
;
}
#info
{
position
:
fixed
;
left
:
5
;
top
:
5
;
height
:
100px
;
width
:
200px
;
background
:
#fff
;
border
:
2px
solid
#999
;
z-index
:
9999
;
}
</style>
<div
id=
"info"
>
Rendering (large: false), please wait ...
</div>
<div
id=
'main'
></div>
<script>
var
xs
=
[
440000
,
450000
];
var
ys
=
[
4368000
,
4537000
];
var
dataURL
=
'
./data/flight.json
'
;
require
([
'
echarts
'
// 'echarts/chart/lines',
// 'echarts/component/legend',
// 'extension/bmap'
],
function
(
echarts
)
{
$
.
get
(
'
../map/json/world.json
'
,
function
(
worldJson
)
{
echarts
.
registerMap
(
'
world
'
,
worldJson
);
$
.
get
(
dataURL
,
function
(
data
)
{
var
config
=
{
dataLoading
:
'
whole
'
,
streamThreshold
:
0
,
streamRender
:
true
,
largeModel
:
true
};
var
chart
;
var
infoEl
=
document
.
getElementById
(
'
info
'
);
init
();
function
init
()
{
if
(
chart
)
{
chart
.
dispose
();
}
chart
=
echarts
.
init
(
document
.
getElementById
(
'
main
'
));
function
getAirportCoord
(
idx
)
{
return
[
data
.
airports
[
idx
][
3
],
data
.
airports
[
idx
][
4
]];
}
var
routes
=
data
.
routes
.
map
(
function
(
airline
)
{
return
[
getAirportCoord
(
airline
[
1
]),
getAirportCoord
(
airline
[
2
])
];
});
var
option
=
{
streamStep
:
4000
,
title
:
{
text
:
'
World Flights
'
,
left
:
'
center
'
,
textStyle
:
{
color
:
'
#eee
'
}
},
backgroundColor
:
'
#003
'
,
tooltip
:
{
formatter
:
function
(
param
)
{
var
route
=
data
.
routes
[
param
.
dataIndex
];
return
data
.
airports
[
route
[
1
]][
1
]
+
'
>
'
+
data
.
airports
[
route
[
2
]][
1
];
}
},
geo
:
{
map
:
'
world
'
,
left
:
0
,
right
:
0
,
roam
:
true
,
silent
:
true
,
itemStyle
:
{
normal
:
{
borderColor
:
'
#003
'
,
color
:
'
#005
'
}
}
},
series
:
[{
type
:
'
lines
'
,
coordinateSystem
:
'
geo
'
,
blendModel
:
'
lighter
'
,
data
:
routes
,
// Test not large mode.
large
:
false
,
largeThreshold
:
100
,
lineStyle
:
{
normal
:
{
opacity
:
0.05
,
width
:
0.5
,
curveness
:
0.3
}
},
// 设置混合模式为叠加
blendMode
:
'
lighter
'
}]
};
chart
.
on
(
'
finished
'
,
function
()
{
infoEl
.
innerHTML
=
'
Finished (large: false). Please test roam (in not large mode, should no error thrown
'
;
});
chart
.
setOption
(
option
);
}
});
});
});
</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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录