// 假数据 模拟数据
var planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';
var geoCoordMap = {
北京: [116.404184,39.914578],
尼日利亚: [-4.388361, 11.186148],
美国洛杉矶: [-118.24311, 34.052713],
香港邦泰: [114.195466, 22.282751],
美国芝加哥: [-87.801833, 41.870975],
加纳库马西: [-4.62829, 7.72415],
英国曼彻斯特: [-1.657222, 51.886863],
德国汉堡: [10.01959, 54.38474],
哈萨克斯坦阿拉木图: [45.326912, 41.101891],
俄罗斯伊尔库茨克: [89.116876, 67.757906],
巴西: [-48.678945, -10.493623],
埃及达米埃塔: [31.815593, 31.418032],
西班牙巴塞罗纳: [2.175129, 41.385064],
柬埔寨金边: [104.88659, 11.545469],
意大利米兰: [9.189948, 45.46623],
乌拉圭蒙得维的亚: [-56.162231, -34.901113],
莫桑比克马普托: [32.608571, -25.893473],
阿尔及利亚阿尔及尔: [3.054275, 36.753027],
阿联酋迪拜: [55.269441, 25.204514],
匈牙利布达佩斯: [17.108519, 48.179162],
澳大利亚悉尼: [150.993137, -33.675509],
美国加州: [-121.910642, 41.38028],
澳大利亚墨尔本: [144.999416, -37.781726],
墨西哥: [-99.094092, 19.365711],
加拿大温哥华: [-123.023921, 49.311753],
"阿富汗": [69.11,34.28],
"阿尔巴尼亚": [19.49,41.18],
"阿尔及利亚": [3.08,36.42],
"美属萨摩亚": [-170.43,-14.16],
"安道尔": [1.32,42.31],
"安哥拉": [13.15,-8.50],
"安提瓜和巴布达": [-61.48,17.20],
"阿根廷": [-60.00,-36.30],
"亚美尼亚": [44.31,40.10],
"阿鲁巴": [-70.02,12.32],
"澳大利亚": [149.08,-35.15],
"奥地利": [16.22,48.12],
"阿塞拜疆": [49.56,40.29],
"巴哈马": [-77.20,25.05],
"巴林": [50.30,26.10],
"孟加拉国": [90.26,23.43],
"巴巴多斯": [-59.30,13.05],
"白俄罗斯": [27.30,53.52],
"比利时": [4.21,50.51],
"伯利兹": [-88.30,17.18],
"贝宁": [2.42,6.23],
"不丹": [89.45,27.31],
"玻利维亚": [-68.10,-16.20],
"波斯尼亚和黑塞哥维那": [18.26,43.52],
"博茨瓦纳": [25.57,-24.45],
"巴西": [-47.55,-15.47],
"英属维尔京群岛": [-64.37,18.27],
"文莱": [115.00,4.52],
"保加利亚": [23.20,42.45],
"布基纳法索": [-1.30,12.15],
"布隆迪": [29.18,-3.16],
"柬埔寨": [104.55,11.33],
"喀麦隆": [11.35,3.50],
"加拿大": [-75.42,45.27],
"佛得角": [-23.34,15.02],
"开曼群岛": [-81.24,19.20],
"中非共和国": [18.35,4.23],
"乍得": [14.59,12.10],
"智利": [-70.40,-33.24],
"中国": [116.20,39.55],
"哥伦比亚": [-74.00,4.34],
"科摩罗": [43.16,-11.40],
"刚果": [15.12,-4.09],
"哥斯达黎加": [-84.02,9.55],
"科特迪瓦": [-5.17,6.49],
"克罗地亚": [15.58,45.50],
"古巴": [-82.22,23.08],
"塞浦路斯": [33.25,35.10],
"捷克共和国": [14.22,50.05],
"朝鲜": [125.30,39.09],
"刚果(扎伊尔)": [15.15,-4.20],
"丹麦": [12.34,55.41],
"吉布提": [42.20,11.08],
"多米尼加": [-61.24,15.20],
"多米尼加共和国": [-69.59,18.30],
"东帝汶": [125.34,-8.29],
"厄瓜多尔": [-78.35,-0.15],
"埃及": [31.14,30.01],
"萨尔瓦多": [-89.10,13.40],
"赤道几内亚": [8.50,3.45],
"厄立特里亚": [38.55,15.19],
"爱沙尼亚": [24.48,59.22],
"埃塞俄比亚": [38.42,9.02],
"福克兰群岛(马尔维纳斯群岛)": [-59.51,-51.40],
"法罗群岛": [-6.56,62.05],
"斐济": [178.30,-18.06],
"芬兰": [25.03,60.15],
"法国": [2.20,48.50],
"法属圭亚那": [-52.18,5.05],
"法属波利尼西亚": [-149.34,-17.32],
"加蓬": [9.26,0.25],
"冈比亚": [-16.40,13.28],
"格鲁吉亚": [44.50,41.43],
"德国": [13.25,52.30],
"加纳": [-0.06,5.35],
"希腊": [23.46,37.58],
"格陵兰": [-51.35,64.10],
"瓜德罗普岛": [-61.44,16.00],
"危地马拉": [-90.22,14.40],
"根西岛": [-2.33,49.26],
"几内亚": [-13.49,9.29],
"几内亚比绍": [-15.45,11.45],
"圭亚那": [-58.12,6.50],
"海地": [-72.20,18.40],
"赫德岛和麦当劳群岛": [74.00,-53.00],
"洪都拉斯": [-87.14,14.05],
"匈牙利": [19.05,47.29],
"冰岛": [-21.57,64.10],
"印度": [77.13,28.37],
"印度尼西亚": [106.49,-6.09],
"伊朗": [51.30,35.44],
"伊拉克": [44.30,33.20],
"爱尔兰": [-6.15,53.21],
"以色列": [35.12,31.47],
"意大利": [12.29,41.54],
"牙买加": [-76.50,18.00],
"约旦": [35.52,31.57],
"哈萨克斯坦": [71.30,51.10],
"肯尼亚": [36.48,-1.17],
"基里巴斯": [173.00,1.30],
"科威特": [48.00,29.30],
"吉尔吉斯斯坦": [74.46,42.54],
"老挝": [102.36,17.58],
"拉脱维亚": [24.08,56.53],
"黎巴嫩": [35.31,33.53],
"莱索托": [27.30,-29.18],
"利比里亚": [-10.47,6.18],
"阿拉伯利比亚民众国": [13.07,32.49],
"列支敦士登": [9.31,47.08],
"立陶宛": [25.19,54.38],
"卢森堡": [6.09,49.37],
"马达加斯加": [47.31,-18.55],
"马拉维": [33.48,-14.00],
"马来西亚": [101.41,3.09],
"马尔代夫": [73.28,4.00],
"马里": [-7.55,12.34],
"马耳他": [14.31,35.54],
"马提尼克岛": [-61.02,14.36],
"毛里塔尼亚": [57.30,-20.10],
"马约特岛": [45.14,-12.48],
"墨西哥": [-99.10,19.20],
"密克罗尼西亚(联邦) ": [158.09,6.55],
"摩尔多瓦共和国": [28.50,47.02],
"莫桑比克": [32.32,-25.58],
"缅甸": [96.20,16.45],
"纳米比亚": [17.04,-22.35],
"尼泊尔": [85.20,27.45],
"荷兰": [4.54,52.23],
"荷属安的列斯": [-69.00,12.05],
"新喀里多尼亚": [166.30,-22.17],
"新西兰": [174.46,-41.19],
"尼加拉瓜": [-86.20,12.06],
"尼日尔": [2.06,13.27],
"尼日利亚": [7.32,9.05],
"诺福克岛": [168.43,-45.20],
"北马里亚纳群岛": [145.45,15.12],
"挪威": [10.45,59.55],
"阿曼": [58.36,23.37],
"巴基斯坦": [73.10,33.40],
"帕劳": [134.28,7.20],
"巴拿马": [-79.25,9.00],
"巴布亚新几内亚": [147.08,-9.24],
"巴拉圭": [-57.30,-25.10],
"秘鲁": [-77.00,-12.00],
"菲律宾": [121.03,14.40],
"波兰": [21.00,52.13],
"葡萄牙": [-9.10,38.42],
"波多黎各": [-66.07,18.28],
"卡塔尔": [51.35,25.15],
"韩国": [126.58,37.31],
"罗马尼亚": [26.10,44.27],
"俄罗斯": [37.35,55.45],
"卢旺达": [30.04,-1.59],
"圣基茨和尼维斯": [-62.43,17.17],
"圣卢西亚": [-60.58,14.02],
"圣皮埃尔和密克隆": [-56.12,46.46],
"圣文森特和格林纳丁斯": [-61.10,13.10],
"萨摩亚": [-171.50,-13.50],
"圣马力诺": [12.30,43.55],
"圣多美和普林西比": [6.39,0.10],
"沙特阿拉伯": [46.42,24.41],
"塞内加尔": [-17.29,14.34],
"塞拉利昂": [-13.17,8.30],
"斯洛伐克": [17.07,48.10],
"斯洛文尼亚": [14.33,46.04],
"所罗门群岛": [159.57,-9.27],
"索马里": [45.25,2.02],
"比勒陀利亚": [28.12,-25.44],
"西班牙": [-3.45,40.25],
"苏丹": [32.35,15.31],
"苏里南": [-55.10,5.50],
"斯威士兰": [31.06,-26.18],
"瑞典": [18.03,59.20],
"瑞士": [7.28,46.57],
"阿拉伯叙利亚共和国": [36.18,33.30],
"塔吉克斯坦": [68.48,38.33],
"泰国": [100.35,13.45],
"马其顿": [21.26,42.01],
"多哥": [1.20,6.09],
"汤加": [-174.00,-21.10],
"突尼斯": [10.11,36.50],
"土耳其": [32.54,39.57],
"土库曼斯坦": [57.50,38.00],
"图瓦卢": [179.13,-8.31],
"乌干达": [32.30,0.20],
"乌克兰": [30.28,50.30],
"阿联酋": [54.22,24.28],
"英国": [-0.05,51.36],
"坦桑尼亚": [35.45,-6.08],
"美国": [-77.02,39.91],
"美属维尔京群岛": [-64.56,18.21],
"乌拉圭": [-56.11,-34.50],
"乌兹别克斯坦": [69.10,41.20],
"瓦努阿图": [168.18,-17.45],
"委内瑞拉": [-66.55,10.30],
"越南": [105.55,21.05],
"南斯拉夫": [20.37,44.50],
"赞比亚": [28.16,-15.28],
"津巴布韦": [31.02,-17.43]
};
var BJData = [
[{
name: "尼日利亚",
value: 9100
}, {
name: "北京"
}],
[{
name: "美国洛杉矶",
value: 2370
}, {
name: "北京"
}],
[{
name: "香港邦泰",
value: 3130
}, {
name: "北京"
}],
[{
name: "美国芝加哥",
value: 2350
}, {
name: "北京"
}],
[{
name: "加纳库马西",
value: 5120
}, {
name: "北京"
}],
[{
name: "英国曼彻斯特",
value: 3110
}, {
name: "北京"
}],
[{
name: "德国汉堡",
value: 6280
}, {
name: "北京"
}],
[{
name: "哈萨克斯坦阿拉木图",
value: 7255
}, {
name: "北京"
}],
[{
name: "俄罗斯伊尔库茨克",
value: 8125
}, {
name: "北京"
}],
[{
name: "巴西",
value: 3590
}, {
name: "北京"
}],
[{
name: "埃及达米埃塔",
value: 3590
}, {
name: "北京"
}],
[{
name: "西班牙巴塞罗纳",
value: 3590
}, {
name: "北京"
}],
[{
name: "柬埔寨金边",
value: 3590
}, {
name: "北京"
}],
[{
name: "意大利米兰",
value: 3590
}, {
name: "北京"
}],
[{
name: "乌拉圭蒙得维的亚",
value: 3590
}, {
name: "北京"
}],
[{
name: "莫桑比克马普托",
value: 3590
}, {
name: "北京"
}],
[{
name: "阿尔及利亚阿尔及尔",
value: 3590
}, {
name: "北京"
}],
[{
name: "阿联酋迪拜",
value: 3590
}, {
name: "北京"
}],
[{
name: "匈牙利布达佩斯",
value: 3590
}, {
name: "北京"
}],
[{
name: "澳大利亚悉尼",
value: 3590
}, {
name: "北京"
}],
[{
name: "美国加州",
value: 3590
}, {
name: "北京"
}],
[{
name: "澳大利亚墨尔本",
value: 3590
}, {
name: "北京"
}],
[{
name: "墨西哥",
value: 3590
}, {
name: "北京"
}],
[{
name: "加拿大温哥华",
value: 3590
}, {
name: "北京"
}]
];
var convertData = function(data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var dataItem = data[i];
var fromCoord = geoCoordMap[dataItem[0].name];
var toCoord = geoCoordMap[dataItem[1].name];
if (fromCoord && toCoord) {
res.push({
fromName: dataItem[0].name,
toName: dataItem[1].name,
coords: [fromCoord, toCoord],
value: dataItem[0].value
});
}
}
return res;
};
var series = [];
[
["北京", BJData]
].forEach(function(item, i) {
series.push({
name: item[2],
type: "lines",
zlevel: 2,
effect: {
show: true,
// //飞机的速度 这里是s单位
period: 6,
trailLength: 0,
symbol: planePath,
// 飞机大小
symbolSize: 16
},
lineStyle: {
normal: {
color:"#ff8800",
// 线条宽度
width: 1,
opacity: 1,
curveness: 0.2
}
},
label: {
normal: {
show: false,
position: 'middle',
formatter: '{b}'
}
},
data: convertData(item[1])
}, {
type: "effectScatter",
coordinateSystem: "geo",
zlevel: 2,
rippleEffect: {
//涟漪特效
period: 4, //动画时间,值越小速度越快
brushType: "stroke", //波纹绘制方式 stroke, fill
scale: 4 //波纹圆环最大限制,值越大波纹越大
},
label: {
normal: {
show: false,
position: "right", //显示位置
offset: [5, 0], //偏移设置
formatter: "{b}", //圆环显示文字
textStyle: {
color: "red"
}
},
emphasis: {
show: true
}
},
symbol: "circle",
symbolSize: function(val) {
return 4 + val[2] / 1000; //圆环大小
},
itemStyle: {
normal: {
show: false
}
},
data: item[1].map(function(dataItem) {
return {
name: dataItem[0].name,
value: geoCoordMap[dataItem[0].name].concat([dataItem[0].value])
};
})
},
//被攻击点
{
type: "scatter",
coordinateSystem: "geo",
zlevel: 2,
rippleEffect: {
period: 4,
brushType: "stroke",
scale: 4
},
label: {
normal: {
show: true,
position: "right",
color: "#00ffff",
formatter: "{b}",
textStyle: {
color: "#0bc7f3"
}
},
emphasis: {
show: true
}
},
symbol: "pin",
symbolSize: 30,
itemStyle: {
normal: {
show: true,
color: "#9966cc"
}
},
data: [{
name: item[0],
value: geoCoordMap[item[0]].concat([10])
}]
}
);
});
option = {
backgroundColor: '#1B2631',
tooltip: {
trigger: "item",
formatter: function(params, ticket, callback) {
if (params.seriesType == "effectScatter") {
return params.marker+params.data.name + "" + params.data.value[2];
} else if (params.seriesType == "lines") {
return params.data.fromName + " -> " + params.data.toName + "
" + params.data.value;
} else {
return params.name;
}
},
},
geo: {
map: "world",
label: {
emphasis: {
show: false
}
},
roam: true, //是否允许缩放
layoutCenter: ["50%", "50%"], //地图位置
layoutSize: "130%",
itemStyle: {
normal: {
color: "rgba(48,97,186,0.3)", //地图背景色
borderColor: "rgba(0, 0, 0, 0)" //省市边界线
},
emphasis: {
color: "rgba(48,97,186,0.3)" //悬浮背景
}
}
},
series: series
};