Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
missman
incubator-echarts
提交
00722947
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,发现更多精彩内容 >>
提交
00722947
编写于
10月 21, 2015
作者:
L
lang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Better geo roam
上级
6e88682b
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
114 addition
and
38 deletion
+114
-38
src/action/geoRoam.js
src/action/geoRoam.js
+18
-7
src/chart/map/MapView.js
src/chart/map/MapView.js
+18
-1
src/component/dataRange/DataRangeModel.js
src/component/dataRange/DataRangeModel.js
+1
-1
src/component/geo/GeoView.js
src/component/geo/GeoView.js
+20
-1
src/component/helper/RoamController.js
src/component/helper/RoamController.js
+27
-4
src/coord/geo/Geo.js
src/coord/geo/Geo.js
+30
-24
未找到文件。
src/action/geoRoam.js
浏览文件 @
00722947
...
...
@@ -30,11 +30,13 @@ define(function (require) {
}
var
roamDetailModel
=
componentModel
.
getModel
(
'
roamDetail
'
);
if
(
dx
!=
null
&&
dy
!=
null
)
{
var
mapScale
=
geo
.
mapScale
;
var
panX
=
roamDetailModel
.
get
(
'
x
'
)
||
0
;
var
panY
=
roamDetailModel
.
get
(
'
y
'
)
||
0
;
var
panX
=
(
roamDetailModel
.
get
(
'
x
'
)
||
0
)
+
dx
/
mapScale
[
0
];
var
panY
=
(
roamDetailModel
.
get
(
'
y
'
)
||
0
)
+
dy
/
mapScale
[
1
];
if
(
dx
!=
null
&&
dy
!=
null
)
{
// FIXME Must divide mapScale ?
panX
+=
dx
;
panY
+=
dy
;
componentModel
.
setRoamPan
&&
componentModel
.
setRoamPan
(
panX
,
panY
);
...
...
@@ -45,10 +47,19 @@ define(function (require) {
if
(
zoom
!=
null
&&
componentModel
.
setRoamZoom
)
{
var
previousZoom
=
roamDetailModel
.
get
(
'
zoom
'
)
||
1
;
zoom
*=
previousZoom
;
componentModel
.
setRoamZoom
(
zoom
);
var
fixX
=
(
payload
.
originX
-
panX
)
*
(
zoom
-
1
);
var
fixY
=
(
payload
.
originY
-
panY
)
*
(
zoom
-
1
);
panX
-=
fixX
;
panY
-=
fixY
;
geo
&&
geo
.
setPan
(
panX
,
panY
);
componentModel
.
setRoamPan
&&
componentModel
.
setRoamPan
(
panX
,
panY
);
geo
&&
geo
.
setZoom
(
zoom
*
previousZoom
);
componentModel
.
setRoamZoom
(
zoom
*
previousZoom
);
geo
&&
geo
.
setZoom
(
zoom
);
}
}
});
...
...
src/chart/map/MapView.js
浏览文件 @
00722947
...
...
@@ -16,7 +16,6 @@ define(function (require) {
render
:
function
(
mapModel
,
ecModel
,
api
)
{
var
group
=
this
.
group
;
var
geo
=
mapModel
.
coordinateSystem
;
group
.
removeAll
();
mapModel
.
needsDrawMap
&&
...
...
@@ -25,6 +24,11 @@ define(function (require) {
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
)
{
...
...
@@ -36,6 +40,19 @@ define(function (require) {
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
();
},
...
...
src/component/dataRange/DataRangeModel.js
浏览文件 @
00722947
...
...
@@ -61,7 +61,7 @@ define(function(require) {
inverse
:
false
,
seriesIndex
:
null
,
// 所控制的series indices,默认所有有value的series.
splitNumber
:
5
,
// 分割段数,默认为5,为0时为线性渐变 (conti
m
ous)
splitNumber
:
5
,
// 分割段数,默认为5,为0时为线性渐变 (conti
n
ous)
backgroundColor
:
'
rgba(0,0,0,0)
'
,
borderColor
:
'
#ccc
'
,
// 值域边框颜色
contentColor
:
'
#5793f3
'
,
...
...
src/component/geo/GeoView.js
浏览文件 @
00722947
...
...
@@ -71,8 +71,14 @@ define(function (require) {
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
'
,
...
...
@@ -81,9 +87,22 @@ define(function (require) {
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
();
}
},
});
});
\ No newline at end of file
src/component/helper/RoamController.js
浏览文件 @
00722947
...
...
@@ -29,7 +29,6 @@ define(function (require) {
if
(
target
)
{
var
pos
=
target
.
position
;
var
scale
=
target
.
scale
;
pos
[
0
]
+=
dx
;
pos
[
1
]
+=
dy
;
target
.
dirty
();
...
...
@@ -44,11 +43,35 @@ define(function (require) {
}
function
mousewheel
(
e
)
{
var
x
=
e
.
offsetX
;
var
y
=
e
.
offsetY
;
var
mouseX
=
e
.
offsetX
;
var
mouseY
=
e
.
offsetY
;
var
rect
=
this
.
rect
;
if
(
rect
&&
rect
.
contain
(
x
,
y
))
{
var
wheelDelta
=
e
.
wheelDelta
>
0
?
1.1
:
1
/
1.1
;
// console.log(wheelDelta, e.wheelDelta);
if
(
rect
&&
rect
.
contain
(
mouseX
,
mouseY
))
{
var
target
=
this
.
target
;
if
(
target
)
{
var
pos
=
target
.
position
;
var
scale
=
target
.
scale
;
var
newZoom
=
this
.
_zoom
=
this
.
_zoom
||
1
;
newZoom
*=
wheelDelta
;
// newZoom = Math.max(
// Math.min(target.maxZoom, newZoom),
// target.minZoom
// );
var
zoomScale
=
newZoom
/
this
.
_zoom
;
this
.
_zoom
=
newZoom
;
// Keep the mouse center when scaling
pos
[
0
]
-=
(
mouseX
-
pos
[
0
])
*
(
zoomScale
-
1
);
pos
[
1
]
-=
(
mouseY
-
pos
[
1
])
*
(
zoomScale
-
1
);
scale
[
0
]
*=
zoomScale
;
scale
[
1
]
*=
zoomScale
;
}
this
.
trigger
(
'
zoom
'
,
wheelDelta
,
mouseX
,
mouseY
);
}
}
...
...
src/coord/geo/Geo.js
浏览文件 @
00722947
...
...
@@ -2,6 +2,7 @@ define(function (require) {
var
parseGeoJson
=
require
(
'
./parseGeoJson
'
);
var
vector
=
require
(
'
zrender/core/vector
'
);
var
matrix
=
require
(
'
zrender/core/matrix
'
);
var
Transformable
=
require
(
'
zrender/mixin/Transformable
'
);
var
zrUtil
=
require
(
'
zrender/core/util
'
);
...
...
@@ -10,6 +11,13 @@ define(function (require) {
var
v2Copy
=
vector
.
copy
;
// Dummy transform node
function
TransformDummy
()
{
Transformable
.
call
(
this
);
}
zrUtil
.
mixin
(
TransformDummy
,
Transformable
);
function
Geo
(
name
,
geoJson
)
{
this
.
name
=
name
;
...
...
@@ -35,16 +43,10 @@ define(function (require) {
*/
this
.
mapScale
=
[
1
,
1
];
/**
* @param Array.<number>
* @private
*/
this
.
_pan
=
[
0
,
0
];
/**
* @param number
* @private
*/
this
.
_zoom
=
1
;
this
.
_roamTransform
=
new
TransformDummy
();
this
.
_mapTransform
=
new
TransformDummy
();
};
Geo
.
prototype
=
{
...
...
@@ -122,11 +124,12 @@ define(function (require) {
this
.
decomposeTransform
();
var
scale
=
this
.
scale
;
var
mapTransform
=
this
.
_mapTransform
scale
[
1
]
=
-
scale
[
1
];
v2Copy
(
this
.
mapP
osition
,
this
.
position
);
v2Copy
(
this
.
mapS
cale
,
scale
);
v2Copy
(
mapTransform
.
p
osition
,
this
.
position
);
v2Copy
(
mapTransform
.
s
cale
,
scale
);
this
.
_updateTransform
();
},
...
...
@@ -146,9 +149,8 @@ define(function (require) {
* @param {number} y
*/
setPan
:
function
(
x
,
y
)
{
var
pan
=
this
.
_pan
;
pan
[
0
]
=
x
;
pan
[
1
]
=
y
;
this
.
_roamTransform
.
position
=
[
x
,
y
];
this
.
_updateTransform
();
},
...
...
@@ -157,7 +159,7 @@ define(function (require) {
* @param {number} zoom
*/
setZoom
:
function
(
zoom
)
{
this
.
_
zoom
=
zoom
;
this
.
_
roamTransform
.
scale
=
[
zoom
,
zoom
]
;
this
.
_updateTransform
();
},
...
...
@@ -167,17 +169,21 @@ define(function (require) {
* @private
*/
_updateTransform
:
function
()
{
var
mapScale
=
this
.
mapScale
;
var
roamTransform
=
this
.
_roamTransform
;
var
mapTransform
=
this
.
_mapTransform
;
var
scale
=
this
.
scale
;
mapTransform
.
parent
=
roamTransform
;
roamTransform
.
updateTransform
();
mapTransform
.
updateTransform
();
var
pan
=
this
.
_pan
;
mapTransform
.
transform
&&
matrix
.
copy
(
this
.
transform
,
mapTransform
.
transform
);
this
.
decomposeTransform
();
scale
[
1
]
=
-
scale
[
1
];
// Update transform position
pan
=
[
pan
[
0
]
*
mapScale
[
0
],
pan
[
1
]
*
mapScale
[
1
]
];
vector
.
add
(
this
.
position
,
this
.
mapPosition
,
pan
);
vector
.
scale
(
this
.
scale
,
mapScale
,
this
.
_zoom
);
this
.
updateTransform
();
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录