Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
missman
incubator-echarts
提交
b695104d
I
incubator-echarts
项目概览
missman
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
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,发现更多精彩内容 >>
提交
b695104d
编写于
10月 21, 2015
作者:
P
pah100
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://github.com/pissang/echarts-next
上级
4cd65e30
e3ab66e8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
154 addition
and
192 deletion
+154
-192
src/chart/map/MapView.js
src/chart/map/MapView.js
+8
-100
src/component/geo/GeoView.js
src/component/geo/GeoView.js
+6
-92
src/component/helper/MapDraw.js
src/component/helper/MapDraw.js
+140
-0
未找到文件。
src/chart/map/MapView.js
浏览文件 @
b695104d
define
(
function
(
require
)
{
var
zrUtil
=
require
(
'
zrender/core/util
'
);
//
var zrUtil = require('zrender/core/util');
var
graphic
=
require
(
'
../../util/graphic
'
);
var
RoamController
=
require
(
'
../../component/helper/RoamController
'
);
var
MapDraw
=
require
(
'
../../component/helper/MapDraw
'
);
require
(
'
../../echarts
'
).
extendChartView
({
type
:
'
map
'
,
init
:
function
(
ecModel
,
api
)
{
var
controller
=
new
RoamController
(
api
.
getZr
(),
null
,
null
);
this
.
_
controller
=
controller
;
var
mapDraw
=
new
MapDraw
(
api
,
false
);
this
.
_
mapDraw
=
mapDraw
;
},
render
:
function
(
mapModel
,
ecModel
,
api
)
{
var
group
=
this
.
group
;
var
mapDraw
=
this
.
_mapDraw
;
group
.
removeAll
();
group
.
add
(
mapDraw
.
group
);
mapModel
.
needsDrawMap
&&
this
.
_renderArea
(
mapModel
,
ecModel
,
api
);
mapDraw
.
draw
(
mapModel
,
ecModel
,
api
);
mapModel
.
get
(
'
showLegendSymbol
'
)
&&
ecModel
.
getComponent
(
'
legend
'
)
&&
this
.
_renderSymbols
(
mapModel
,
ecModel
,
api
);
this
.
_updateController
(
mapModel
,
ecModel
,
api
);
},
_updateController
:
function
(
mapModel
,
ecModel
,
api
)
{
var
geo
=
mapModel
.
coordinateSystem
;
var
controller
=
this
.
_controller
;
controller
.
off
(
'
pan
'
)
.
on
(
'
pan
'
,
function
(
dx
,
dy
)
{
api
.
dispatch
({
type
:
'
geoRoam
'
,
// component: 'series',
name
:
mapModel
.
name
,
dx
:
dx
,
dy
:
dy
});
});
controller
.
off
(
'
zoom
'
)
.
on
(
'
zoom
'
,
function
(
wheelDelta
,
mouseX
,
mouseY
)
{
api
.
dispatch
({
type
:
'
geoRoam
'
,
// component: 'series',
name
:
mapModel
.
name
,
zoom
:
wheelDelta
,
originX
:
mouseX
,
originY
:
mouseY
});
// TODO Update lineWidth
});
controller
.
rect
=
geo
.
getViewBox
();
},
_renderArea
:
function
(
mapModel
,
ecModel
,
api
)
{
var
data
=
mapModel
.
getData
();
var
geo
=
mapModel
.
coordinateSystem
;
var
mapGroup
=
new
graphic
.
Group
();
var
group
=
this
.
group
;
group
.
add
(
mapGroup
);
var
scale
=
geo
.
scale
;
mapGroup
.
position
=
geo
.
position
.
slice
();
mapGroup
.
scale
=
scale
.
slice
();
zrUtil
.
each
(
geo
.
regions
,
function
(
region
)
{
var
regionGroup
=
new
graphic
.
Group
();
var
dataIdx
=
data
.
indexOfName
(
region
.
name
);
var
itemModel
=
data
.
getItemModel
(
dataIdx
);
var
itemStyleModel
=
itemModel
.
getModel
(
'
itemStyle.normal
'
);
var
hoverItemStyleModel
=
itemModel
.
getModel
(
'
itemStyle.emphasis
'
);
var
itemStyle
=
itemStyleModel
.
getItemStyle
();
var
hoverItemStyle
=
hoverItemStyleModel
.
getItemStyle
();
// Competitable with 2.0
var
areaStylePath
=
'
areaStyle.color
'
;
itemStyle
.
fill
=
itemStyleModel
.
get
(
areaStylePath
);
hoverItemStyle
.
fill
=
hoverItemStyleModel
.
get
(
'
areaColor
'
);
var
styleObj
=
zrUtil
.
defaults
(
{
// Global visual color is used by symbol
// item visual color may be coded by dataRange
fill
:
data
.
getItemVisual
(
dataIdx
,
'
color
'
,
true
)
||
data
.
getVisual
(
'
areaColor
'
)
},
itemStyle
);
styleObj
.
lineWidth
&&
(
styleObj
.
lineWidth
/=
scale
[
0
]);
hoverItemStyle
.
lineWidth
&&
(
hoverItemStyle
.
lineWidth
/=
scale
[
0
]);
zrUtil
.
each
(
region
.
contours
,
function
(
contour
)
{
var
polygon
=
new
graphic
.
Polygon
({
shape
:
{
points
:
contour
}
});
polygon
.
setStyle
(
styleObj
);
graphic
.
setHoverStyle
(
polygon
,
hoverItemStyle
);
regionGroup
.
add
(
polygon
);
});
mapGroup
.
add
(
regionGroup
);
});
},
_renderSymbols
:
function
(
mapModel
,
ecModel
,
api
)
{
...
...
src/component/geo/GeoView.js
浏览文件 @
b695104d
...
...
@@ -2,107 +2,21 @@ define(function (require) {
'
use strict
'
;
var
zrUtil
=
require
(
'
zrender/core/util
'
);
var
graphic
=
require
(
'
../../util/graphic
'
);
var
RoamController
=
require
(
'
../helper/RoamController
'
);
var
MapDraw
=
require
(
'
../helper/MapDraw
'
);
return
require
(
'
../../echarts
'
).
extendComponentView
({
type
:
'
geo
'
,
init
:
function
(
ecModel
,
api
)
{
var
mapGroup
=
new
graphic
.
Group
();
var
controller
=
new
RoamController
(
api
.
getZr
(),
mapGroup
,
null
);
this
.
_controller
=
controller
;
var
mapDraw
=
new
MapDraw
(
api
,
true
);
this
.
_mapDraw
=
mapDraw
;
this
.
_mapGroup
=
mapGroup
;
this
.
group
.
add
(
mapDraw
.
group
)
;
},
render
:
function
(
geoModel
,
ecModel
,
api
)
{
var
group
=
this
.
group
;
var
mapGroup
=
this
.
_mapGroup
;
group
.
removeAll
();
group
.
add
(
mapGroup
);
mapGroup
.
removeAll
();
var
geo
=
geoModel
.
coordinateSystem
;
var
itemStyleModel
=
geoModel
.
getModel
(
'
itemStyle.normal
'
);
var
hoverItemStyleModel
=
geoModel
.
getModel
(
'
itemStyle.emphasis
'
);
var
itemStyle
=
itemStyleModel
.
getItemStyle
();
var
hoverItemStyle
=
hoverItemStyleModel
.
getItemStyle
();
var
scale
=
geo
.
scale
;
mapGroup
.
attr
({
position
:
geo
.
position
,
scale
:
scale
});
itemStyle
.
lineWidth
&&
(
itemStyle
.
lineWidth
/=
scale
[
0
]);
hoverItemStyle
.
lineWidth
&&
(
hoverItemStyle
.
lineWidth
/=
scale
[
0
]);
zrUtil
.
each
(
geo
.
regions
,
function
(
region
)
{
var
regionGroup
=
new
graphic
.
Group
();
zrUtil
.
each
(
region
.
contours
,
function
(
contour
)
{
var
polygon
=
new
graphic
.
Polygon
({
shape
:
{
points
:
contour
}
});
polygon
.
setStyle
(
itemStyle
);
graphic
.
setHoverStyle
(
polygon
,
hoverItemStyle
);
regionGroup
.
add
(
polygon
);
});
mapGroup
.
add
(
regionGroup
);
});
this
.
_updateController
(
geoModel
,
ecModel
,
api
);
},
_updateController
:
function
(
geoModel
,
ecModel
,
api
)
{
var
geo
=
geoModel
.
coordinateSystem
;
var
controller
=
this
.
_controller
;
controller
.
off
(
'
pan
'
)
.
off
(
'
zoom
'
)
.
on
(
'
pan
'
,
function
(
dx
,
dy
)
{
api
.
dispatch
({
type
:
'
geoRoam
'
,
component
:
'
geo
'
,
name
:
geoModel
.
name
,
dx
:
dx
,
dy
:
dy
});
})
.
on
(
'
zoom
'
,
function
(
wheelDelta
,
mouseX
,
mouseY
)
{
api
.
dispatch
({
type
:
'
geoRoam
'
,
component
:
'
geo
'
,
name
:
geoModel
.
name
,
zoom
:
wheelDelta
,
originX
:
mouseX
,
originY
:
mouseY
});
// TODO Update lineWidth
});
controller
.
rect
=
geo
.
getViewBox
();
},
this
.
_mapDraw
.
draw
(
geoModel
,
ecModel
,
api
);
}
});
});
\ No newline at end of file
src/component/helper/MapDraw.js
0 → 100644
浏览文件 @
b695104d
define
(
function
(
require
)
{
var
RoamController
=
require
(
'
./RoamController
'
);
var
graphic
=
require
(
'
../../util/graphic
'
);
var
zrUtil
=
require
(
'
zrender/core/util
'
);
function
MapDraw
(
api
,
updateGroup
)
{
var
group
=
new
graphic
.
Group
();
this
.
_controller
=
new
RoamController
(
api
.
getZr
(),
updateGroup
?
group
:
null
,
null
);
this
.
group
=
group
;
}
function
getFixedItemStyle
(
model
,
scale
)
{
var
itemStyle
=
model
.
getItemStyle
();
var
areaColor
=
model
.
get
(
'
areaColor
'
);
if
(
areaColor
)
{
itemStyle
.
fill
=
areaColor
;
}
itemStyle
.
lineWidth
&&
(
itemStyle
.
lineWidth
/=
scale
[
0
]);
return
itemStyle
;
}
MapDraw
.
prototype
=
{
constructor
:
MapDraw
,
draw
:
function
(
mapOrGeoModel
,
ecModel
,
api
)
{
// geoModel has no data
var
data
=
mapOrGeoModel
.
getData
&&
mapOrGeoModel
.
getData
();
var
geo
=
mapOrGeoModel
.
coordinateSystem
;
var
group
=
this
.
group
;
group
.
removeAll
();
var
scale
=
geo
.
scale
;
group
.
position
=
geo
.
position
.
slice
();
group
.
scale
=
scale
.
slice
();
var
itemStyleModel
;
var
hoverItemStyleModel
;
var
itemStyle
;
var
hoverItemStyle
;
var
itemStyleAccessPath
=
[
'
itemStyle
'
,
'
normal
'
];
var
hoverItemStyleAccessPath
=
[
'
itemStyle
'
,
'
emphasis
'
];
if
(
!
data
)
{
itemStyleModel
=
mapOrGeoModel
.
getModel
(
itemStyleAccessPath
);
hoverItemStyleModel
=
mapOrGeoModel
.
getModel
(
hoverItemStyleAccessPath
);
itemStyle
=
getFixedItemStyle
(
itemStyleModel
,
scale
);
hoverItemStyle
=
getFixedItemStyle
(
hoverItemStyleModel
,
scale
);
}
zrUtil
.
each
(
geo
.
regions
,
function
(
region
)
{
var
regionGroup
=
new
graphic
.
Group
();
// Use the itemStyle in data if has data
if
(
data
)
{
var
dataIdx
=
data
.
indexOfName
(
region
.
name
);
var
itemModel
=
data
.
getItemModel
(
dataIdx
);
var
visualColor
=
data
.
getItemVisual
(
dataIdx
,
'
color
'
);
itemStyleModel
=
itemModel
.
getModel
(
itemStyleAccessPath
);
hoverItemStyleModel
=
itemModel
.
getModel
(
hoverItemStyleAccessPath
);
itemStyle
=
getFixedItemStyle
(
itemStyleModel
,
scale
);
hoverItemStyle
=
getFixedItemStyle
(
hoverItemStyleModel
,
scale
);
if
(
visualColor
)
{
itemStyle
.
fill
=
visualColor
;
}
}
zrUtil
.
each
(
region
.
contours
,
function
(
contour
)
{
var
polygon
=
new
graphic
.
Polygon
({
shape
:
{
points
:
contour
}
});
polygon
.
setStyle
(
itemStyle
);
graphic
.
setHoverStyle
(
polygon
,
hoverItemStyle
);
regionGroup
.
add
(
polygon
);
});
group
.
add
(
regionGroup
);
});
this
.
_updateController
(
mapOrGeoModel
,
ecModel
,
api
);
},
_updateController
:
function
(
mapOrGeoModel
,
ecModel
,
api
)
{
var
geo
=
mapOrGeoModel
.
coordinateSystem
;
var
controller
=
this
.
_controller
;
// FIXME mainType, subType 作为 component 的属性?
var
mainType
=
mapOrGeoModel
.
type
.
split
(
'
.
'
)[
0
];
controller
.
off
(
'
pan
'
)
.
on
(
'
pan
'
,
function
(
dx
,
dy
)
{
api
.
dispatch
({
type
:
'
geoRoam
'
,
component
:
mainType
,
name
:
mapOrGeoModel
.
name
,
dx
:
dx
,
dy
:
dy
});
});
controller
.
off
(
'
zoom
'
)
.
on
(
'
zoom
'
,
function
(
wheelDelta
,
mouseX
,
mouseY
)
{
api
.
dispatch
({
type
:
'
geoRoam
'
,
component
:
mainType
,
name
:
mapOrGeoModel
.
name
,
zoom
:
wheelDelta
,
originX
:
mouseX
,
originY
:
mouseY
});
// TODO Update lineWidth
});
controller
.
rect
=
geo
.
getViewBox
();
},
}
return
MapDraw
;
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录