转载:http://www.w2bc.com/Article/18033
var
cityMap = {
"长沙市"
:
"430100"
,
"株洲市"
:
"430200"
,
"湘潭市"
:
"430300"
,
"衡阳市"
:
"430400"
,
"邵阳市"
:
"430500"
,
"岳阳市"
:
"430600"
,
"常德市"
:
"430700"
,
"张家界市"
:
"430800"
,
"益阳市"
:
"430900"
,
"郴州市"
:
"431000"
,
"永州市"
:
"431100"
,
"怀化市"
:
"431200"
,
"娄底市"
:
"431300"
,
"湘西土家族苗族自治州"
:
"433100"
};
var
curIndx = 0;
var
mapType = [];
var
mapGeoData = require(
'echarts/util/mapData/params'
);
for
(
var
city
in
cityMap) {
mapType.push(city);
mapGeoData.params[city] = {
getGeoJson: (
function
(c) {
var
geoJsonName = cityMap[c];
return
function
(callback) {
$.getJSON(
'geoJson/china-main-city/'
+ geoJsonName +
'.json'
, callback);
}
})(city)
}
}
var
ecConfig = require(
'echarts/config'
);
var
zrEvent = require(
'zrender/tool/event'
);
document.getElementById(
'main'
).onmousewheel =
function
(e){
var
event = e || window.event;
curIndx += zrEvent.getDelta(event) > 0 ? (-1) : 1;
if
(curIndx < 0) {
curIndx = mapType.length - 1;
}
var
mt = mapType[curIndx % mapType.length];
option.series[0].mapType = mt;
option.title.subtext = mt +
' (滚轮或点击切换)'
;
myChart.setOption(option,
true
);
zrEvent.stop(event);
};
myChart.on(ecConfig.EVENT.MAP_SELECTED,
function
(param){
var
mt = param.target;
var
len = mapType.length;
var
f=
false
;
for
(
var
i=0;i<len;i++){
if
(mt == mapType[i]){
f =
true
;
mt=mapType[i];
}
}
if
(!f){
mt=
'湖南'
;
}
option.series[0].mapType = mt;
option.title.subtext = mt +
' (滚轮或点击切换)'
;
myChart.setOption(option,
true
);
});
option = {
title: {
text :
'全国344个主要城市(县)地图 by Pactera 陈然'
,
link :
'http://www.pactera.com/'
,
subtext :
'长沙市 (滚轮或点击切换)'
},
tooltip : {
trigger:
'item'
,
formatter:
'滚轮或点击切换<br/>{b}'
},
series : [
{
name:
'全国344个主要城市(县)地图'
,
type:
'map'
,
mapType:
'湖南'
,
selectedMode :
'single'
,
itemStyle:{
normal:{label:{show:
true
}},
emphasis:{label:{show:
true
}}
},
data:[]
}
]
};
将上面部分代码复制,然后粘贴覆盖到http://echarts.baidu.com/doc/example/mix5.html左侧的黑色区域中,然后点击刷新,即可看到效果。
上面代码实现了从某省下钻到区县的功能。我测试发现,把全国344个地级市信息放到cityMap这个对象里,然后把mapType这个数组定义成
var mapType = [
'china',
// 23个省
'广东', '青海', '四川', '海南', '陕西',
'甘肃', '云南', '湖南', '湖北', '黑龙江',
'贵州', '山东', '江西', '河南', '河北',
'山西', '安徽', '福建', '浙江', '江苏',
'吉林', '辽宁', '台湾',
// 5个自治区
'新疆', '广西', '宁夏', '内蒙古', '西藏',
// 4个直辖市
'北京', '天津', '上海', '重庆',
// 2个特别行政区
'香港', '澳门'
];
就实现了从全国下钻到区县的功能。