想实现地图和饼图的联动,总是报错。echarts.config 这里在echarts3.0里应该怎么搞?
配置项如下
var myChart = echarts.init(document.getElementById('China'),'walden');
var data = [
{name: "北京", value: 200},
{name: "上海", value: 80},
{name: "天津", value: 200},
{name: "济南", value: 200},
{name: "广州", value: 30},
{name: "西安", value: 100},
{name: "成都", value: 50},
{name: "石家庄", value: 200},
{name: "沈阳", value: 100},
{name: "杭州", value: 50},
{name: "哈尔滨", value: 39},
{name: "长春", value: 50},
{name: "太原", value: 100},
{name: "重庆", value: 50},
{name: "南京", value: 80},
{name: "乌鲁木齐", value: 80},
{name: "呼和浩特", value: 80},
{name: "郑州", value: 150},
{name: "南昌", value: 25},
{name: "海口", value: 25},
{name: "拉萨", value: 25},
{name: "兰州", value: 80},
{name: "西宁", value: 25},
{name: "南宁", value: 25},
{name: "银川", value: 50},
{name: "昆明", value: 25},
{name: "澳门", value: 26},
{name: "香港", value: 26},
{name: "合肥", value: 26},
{name: "武汉", value: 50},
{name: "长沙", value: 27},
{name: "贵阳", value: 27},
{name: "福州", value: 28},
{name: "台北", value: 29}
];
var geoCoordMap = {
"北京":[116.405285,39.904989],
"上海":[121.472644,31.231706],
"天津":[117.190182,39.125596],
"广州":[113.23,23.16],
"西安":[108.95,34.27],
"成都":[104.06,30.67],
"济南":[117,36.65],
"石家庄":[114.48,38.03],
"沈阳":[123.38,41.8],
"哈尔滨":[126.63,45.75],
"长春":[125.35,43.88],
"太原":[112.53,37.87],
"重庆":[106.54,29.59],
"南京":[118.767413,32.041544],
"乌鲁木齐":[87.68,43.77],
"杭州":[120.19,30.26],
"呼和浩特":[111.65,40.82],
"郑州":[113.65,34.76],
"南昌":[115.89,28.68],
"海口":[110.35,20.02],
"兰州":[103.823557,36.058039],
"拉萨":[91.11,29.97],
"西宁":[101.74,36.56],
"南宁":[108.33,22.84],
"银川":[106.27,38.47],
"昆明":[102.73,25.04],
"澳门":[113.54909,22.198951],
"香港":[114.173355,22.320048],
"合肥":[117.27,31.86],
"武汉":[114.31,30.52],
"长沙":[113,28.21],
"贵阳":[106.71,26.57],
"福州":[119.3,26.08],
"台北":[121.509062,25.044332]
};
var convertData = function (data){
var res = [];
for (var i = 0; i < data.length; i++){
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value)
});
}
}
return res;
};
option = {
visualMap: {
type: 'continuous', // 连续型
min: 0, // 值域最小值,必须参数
max: 200, // 值域最大值,必须参数
calculable: true, // 是否启用值域漫游
inRange: {
//color: ['#50a3ba','#eac736','#d94e5d']
color: ['#59c4b0','#fffe9f','#d94e5d']
// 指定数值从低到高时的颜色变化
},
textStyle: {
color: '#fff' // 值域控件的文本颜色
}
},
geo: {
map: 'china',
itemStyle: { // 定义样式
normal: { // 普通状态下的样式
// areaColor: '#b7f3fd',
areaColor: '#4476b4cc',
opacity: 0.8,
borderColor: '#111'
},
emphasis: { // 高亮状态下的样式
areaColor:'#d3ffff'
}
}
},
backgroundColor: '#293441', // 图表背景色
title:{
text: '全国主要城市空气质量',
subtext: 'data from PM25.in',
sublink: 'http://www.pm25.in',
left: 'center',
textStyle: {
fontWeight: 'normal', //标题颜色
color: '#fff'
},
},
series: [
{
name: '2011全国GDP分布',
type: 'map',
mapType: 'china',
mapLocation: {
x: 'left'
},
selectedMode : 'multiple',
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{show:true}}
},
data: [
{name:'西藏', value:605.83},
{name:'青海', value:1670.44},
{name:'宁夏', value:2102.21},
{name:'海南', value:2522.66},
{name:'甘肃', value:5020.37},
{name:'贵州', value:5701.84},
{name:'新疆', value:6610.05},
{name:'云南', value:8893.12},
{name:'重庆', value:10011.37},
{name:'吉林', value:10568.83},
{name:'山西', value:11237.55},
{name:'天津', value:11307.28},
{name:'江西', value:11702.82},
{name:'广西', value:11720.87},
{name:'陕西', value:12512.3},
{name:'黑龙江', value:12582},
{name:'内蒙古', value:14359.88},
{name:'安徽', value:15300.65},
{name:'北京', value:16251.93, selected:true},
{name:'福建', value:17560.18},
{name:'上海', value:19195.69, selected:true},
{name:'湖北', value:19632.26},
{name:'湖南', value:19669.56},
{name:'四川', value:21026.68},
{name:'辽宁', value:22226.7},
{name:'河北', value:24515.76},
{name:'河南', value:26931.03},
{name:'浙江', value:32318.85},
{name:'山东', value:45361.85},
{name:'江苏', value:49110.27},
{name:'广东', value:53210.28, selected:true}
],
coordinateSystem: 'geo',
symbolSize: function (val){
return val[2]/5;
},
label: {
normal:{
formatter: '{b}',
position: 'right',
show: true
},
emphasis:{
show:true
}
},
itemStyle: {
normal:{
color: '#ddb926'
}
}
},
{
name:'2011全国GDP对比',
type:'pie',
roseType : 'area',
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
center: [document.getElementById('China').offsetWidth - 250, 225],
radius: [30, 120],
data:[
{name: '北京', value: 16251.93},
{name: '上海', value: 19195.69},
{name: '广东', value: 53210.28}
]
},
{
name: 'Top10',
type: 'effectScatter',
mapType: 'china',
coordinateSystem: 'geo',
data: convertData(data.sort(function(a,b){
return b.vallue-a.value;
}).slice(0,33)),
symbolSize:function(val){
return val[2]/5;
},
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke'
},
hoverAnimation: true,
label: {
normal:{
formatter:'{b}',
position: 'right',
show: false
}
},
itemStyle: {
normal:{
color: '#ddb926',
shadowBlur: 10,
shadowColor: '#333'
}
},
zlevel: 1
}
]
};
var ecConfig = echarts.config;
myChart.on(ecConfig.EVENT.MAP_SELECTED, function (param){
var selected = param.selected;
var mapSeries = option.series[0];
var data = [];
var legendData = [];
var name;
for (var p = 0, len = mapSeries.data.length; p < len; p++) {
name = mapSeries.data[p].name;
//mapSeries.data[p].selected = selected[name];
if (selected[name]) {
data.push({
name: name,
value: mapSeries.data[p].value
});
legendData.push(name);
}
}
option.legend.data = legendData;
option.series[1].data = data;
myChart.setOption(option, true);
})
// myChart.setOption(option);