function randomData() {
return Math.round(Math.random() * 10);
}
var worlddata = [{
name: 'Afghanistan',
value: 5
},
{
name: 'Angola',
value: 5
},
// {name: 'Albania', value: randomData()},
{
name: 'United States',
value: 200
},
{
name: 'United Arab Emirates',
value: randomData()
},
{
name: 'Argentina',
value: 5
},
{
name: 'Armenia',
value: randomData()
},
{
name: 'French Southern and Antarctic Lands',
value: 180
},
{
name: 'Australia',
value: 180
},
{
name: 'Austria',
value: randomData()
},
{
name: 'Azerbaijan',
value: randomData()
},
{
name: 'Burundi',
value: randomData()
},
{
name: 'Belgium',
value: randomData()
},
{
name: 'Benin',
value: randomData()
},
{
name: 'Burkina Faso',
value: randomData()
},
{
name: 'Bangladesh',
value: randomData()
},
{
name: 'Bulgaria',
value: randomData()
},
{
name: 'The Bahamas',
value: randomData()
},
{
name: 'Bosnia and Herzegovina',
value: randomData()
},
{
name: 'Belarus',
value: randomData()
},
{
name: 'Belize',
value: randomData()
},
{
name: 'Bermuda',
value: randomData()
},
// {name: 'Bolivia', value: randomData()},
{
name: 'Brazil',
value: 80
},
{
name: 'Brunei',
value: randomData()
},
{
name: 'Bhutan',
value: randomData()
},
{
name: 'Botswana',
value: randomData()
},
{
name: 'Central African Republic',
value: randomData()
},
{
name: 'Canada',
value: 180
},
{
name: 'Switzerland',
value: randomData()
},
{
name: 'Chile',
value: randomData()
},
{
name: 'China',
value: randomData()
},
{
name: 'Ivory Coast',
value: randomData()
},
{
name: 'Cameroon',
value: randomData()
},
{
name: 'Democratic Republic of the Congo',
value: randomData()
},
{
name: 'Republic of the Congo',
value: randomData()
},
{
name: 'Colombia',
value: randomData()
},
{
name: 'Costa Rica',
value: randomData()
},
{
name: 'Cuba',
value: randomData()
},
{
name: 'Northern Cyprus',
value: randomData()
},
{
name: 'Cyprus',
value: randomData()
},
{
name: 'Czech Republic',
value: randomData()
},
{
name: 'Germany',
value: 55
},
{
name: 'Djibouti',
value: randomData()
},
{
name: 'Denmark',
value: randomData()
},
{
name: 'Dominican Republic',
value: randomData()
},
{
name: 'Algeria',
value: randomData()
},
{
name: 'Ecuador',
value: randomData()
},
{
name: 'Egypt',
value: 55
},
{
name: 'Eritrea',
value: randomData()
},
{
name: 'Spain',
value: randomData()
},
{
name: 'Estonia',
value: randomData()
},
{
name: 'Ethiopia',
value: randomData()
},
{
name: 'Finland',
value: randomData()
},
{
name: 'Fiji',
value: randomData()
},
{
name: 'Falkland Islands',
value: randomData()
},
{
name: 'France',
value: 170
},
{
name: 'Gabon',
value: randomData()
},
{
name: 'United Kingdom',
value: 101
},
{
name: 'Georgia',
value: randomData()
},
{
name: 'Ghana',
value: randomData()
},
{
name: 'Guinea',
value: randomData()
},
{
name: 'Gambia',
value: randomData()
},
{
name: 'Guinea Bissau',
value: randomData()
},
{
name: 'Equatorial Guinea',
value: randomData()
},
{
name: 'Greece',
value: randomData()
},
{
name: 'Greenland',
value: randomData()
},
{
name: 'Guatemala',
value: randomData()
},
{
name: 'French Guiana',
value: randomData()
},
{
name: 'Guyana',
value: randomData()
},
{
name: 'Honduras',
value: randomData()
},
{
name: 'Croatia',
value: randomData()
},
{
name: 'Haiti',
value: randomData()
},
{
name: 'Hungary',
value: randomData()
},
{
name: 'Indonesia',
value: randomData()
},
{
name: 'India',
value: randomData()
},
{
name: 'Ireland',
value: randomData()
},
{
name: 'Iran',
value: randomData()
},
{
name: 'Iraq',
value: randomData()
},
{
name: 'Iceland',
value: randomData()
},
{
name: 'Israel',
value: randomData()
},
{
name: 'Italy',
value: 102
},
{
name: 'Jamaica',
value: randomData()
},
{
name: 'Jordan',
value: 50
},
{
name: 'Japan',
value: randomData()
},
{
name: 'Kazakhstan',
value: randomData()
},
{
name: 'Kenya',
value: randomData()
},
{
name: 'Kyrgyzstan',
value: randomData()
},
{
name: 'Cambodia',
value: randomData()
},
{
name: 'South Korea',
value: randomData()
},
{
name: 'Kosovo',
value: randomData()
},
{
name: 'Kuwait',
value: randomData()
},
{
name: 'Laos',
value: randomData()
},
{
name: 'Lebanon',
value: randomData()
},
{
name: 'Liberia',
value: randomData()
},
{
name: 'Libya',
value: randomData()
},
{
name: 'Sri Lanka',
value: randomData()
},
{
name: 'Lesotho',
value: randomData()
},
{
name: 'Lithuania',
value: randomData()
},
{
name: 'Luxembourg',
value: randomData()
},
{
name: 'Latvia',
value: randomData()
},
{
name: 'Morocco',
value: randomData()
},
{
name: 'Moldova',
value: randomData()
},
{
name: 'Madagascar',
value: randomData()
},
{
name: 'Mexico',
value: 120
},
{
name: 'Macedonia',
value: randomData()
},
{
name: 'Mali',
value: randomData()
},
{
name: 'Myanmar',
value: randomData()
},
{
name: 'Montenegro',
value: randomData()
},
{
name: 'Mongolia',
value: randomData()
},
{
name: 'Mozambique',
value: randomData()
},
{
name: 'Mauritania',
value: randomData()
},
{
name: 'Malawi',
value: randomData()
},
{
name: 'Malaysia',
value: randomData()
},
{
name: 'Namibia',
value: randomData()
},
{
name: 'New Caledonia',
value: randomData()
},
{
name: 'Niger',
value: randomData()
},
{
name: 'Nigeria',
value: 60
},
{
name: 'Nicaragua',
value: randomData()
},
{
name: 'Netherlands',
value: randomData()
},
{
name: 'Norway',
value: randomData()
},
{
name: 'Nepal',
value: randomData()
},
{
name: 'New Zealand',
value: randomData()
},
{
name: 'Oman',
value: randomData()
},
{
name: 'Pakistan',
value: randomData()
},
{
name: 'Panama',
value: randomData()
},
{
name: 'Peru',
value: randomData()
},
{
name: 'Philippines',
value: randomData()
},
{
name: 'Papua New Guinea',
value: randomData()
},
{
name: 'Poland',
value: randomData()
},
{
name: 'Puerto Rico',
value: randomData()
},
{
name: 'North Korea',
value: randomData()
},
{
name: 'Portugal',
value: randomData()
},
{
name: 'Paraguay',
value: randomData()
},
{
name: 'Qatar',
value: randomData()
},
{
name: 'Romania',
value: randomData()
},
{
name: 'Russia',
value: 55
},
{
name: 'Rwanda',
value: randomData()
},
{
name: 'Western Sahara',
value: randomData()
},
{
name: 'Saudi Arabia',
value: randomData()
},
{
name: 'Sudan',
value: randomData()
},
{
name: 'South Sudan',
value: randomData()
},
{
name: 'Senegal',
value: randomData()
},
{
name: 'Solomon Islands',
value: randomData()
},
{
name: 'Sierra Leone',
value: randomData()
},
{
name: 'El Salvador',
value: randomData()
},
{
name: 'Somaliland',
value: randomData()
},
{
name: 'Somalia',
value: randomData()
},
{
name: 'Republic of Serbia',
value: randomData()
},
{
name: 'Suriname',
value: randomData()
},
{
name: 'Slovakia',
value: randomData()
},
{
name: 'Slovenia',
value: randomData()
},
{
name: 'Sweden',
value: randomData()
},
{
name: 'Swaziland',
value: randomData()
},
{
name: 'Syria',
value: randomData()
},
{
name: 'Chad',
value: randomData()
},
{
name: 'Togo',
value: randomData()
},
{
name: 'Thailand',
value: randomData()
},
{
name: 'Tajikistan',
value: randomData()
},
{
name: 'Turkmenistan',
value: randomData()
},
{
name: 'East Timor',
value: randomData()
},
{
name: 'Trinidad and Tobago',
value: randomData()
},
{
name: 'Tunisia',
value: randomData()
},
{
name: 'Turkey',
value: randomData()
},
{
name: 'United Republic of Tanzania',
value: randomData()
},
{
name: 'Uganda',
value: randomData()
},
{
name: 'Ukraine',
value: randomData()
},
{
name: 'Uruguay',
value: randomData()
},
// {name: 'United States of America', value: randomData()},
{
name: 'Uzbekistan',
value: randomData()
},
{
name: 'Venezuela',
value: randomData()
},
{
name: 'Vietnam',
value: randomData()
},
{
name: 'Vanuatu',
value: randomData()
},
{
name: 'West Bank',
value: randomData()
},
{
name: 'Yemen',
value: randomData()
},
{
name: 'South Africa',
value: randomData()
},
{
name: 'Zambia',
value: randomData()
},
{
name: 'Zimbabwe',
value: randomData()
},
{
name: '浙江',
value: 260
},
{
name: '北京',
value: 180
},
{
name: '香港',
value: 10
}
];
var geoCoordMap = {
// 上海: [121.4648, 31.2891],
浙江: [119.8313, 29.8773],
杭州: [119.8313, 29.3773],
北京: [116.405285, 39.904989],
尼日利亚: [6.815625, 8.546875],
美国洛杉矶: [-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],
法国: [2.8719426, 46.8222422]
};
var BJData = [
[{
name: "尼日利亚",
value: 10
}, {
name: "杭州"
}],
[{
name: "美国洛杉矶",
value: 200
}, {
name: "杭州"
}],
/*
[{
name: "香港邦泰",
value: 90
}, {
name: "杭州"
}],*/
[{
name: "美国芝加哥",
value: 200
}, {
name: "杭州"
}],
[{
name: "北京",
value: 180
}, {
name: "杭州"
}],
[{
name: "英国曼彻斯特",
value: 160
}, {
name: "杭州"
}],
[{
name: "德国汉堡",
value: 100
}, {
name: "杭州"
}],
/*
[{
name: "哈萨克斯坦阿拉木图",
value: 100
}, {
name: "杭州"
}],*/
[{
name: "俄罗斯伊尔库茨克",
value: 55
}, {
name: "杭州"
}],
[{
name: "巴西",
value: 120
}, {
name: "杭州"
}],
[{
name: "埃及达米埃塔",
value: 130
}, {
name: "杭州"
}],
[{
name: "西班牙巴塞罗纳",
value: 90
}, {
name: "杭州"
}],
/*
[{
name: "柬埔寨金边",
value: 30
}, {
name: "杭州"
}],*/
[{
name: "意大利米兰",
value: 90
}, {
name: "杭州"
}],
[{
name: "澳大利亚悉尼",
value: 200
}, {
name: "杭州"
}],
[{
name: "美国加州",
value: 200
}, {
name: "杭州"
}],
[{
name: "澳大利亚墨尔本",
value: 100
}, {
name: "杭州"
}],
[{
name: "墨西哥",
value: 120
}, {
name: "杭州"
}],
[{
name: "加拿大温哥华",
value: 190
}, {
name: "杭州"
}],
[{
name: "法国",
value: 190
}, {
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([{
coord: fromCoord,
value: dataItem[0].value
},
{
coord: toCoord
}
]);
}
}
return res;
};
var convertData2 = function(data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var dataItem = data[i];
var fromCoord = geoCoordMap[dataItem[1].name];
var toCoord = geoCoordMap[dataItem[0].name];
if (fromCoord && toCoord) {
res.push([{
coord: fromCoord,
value: dataItem[0].value
},
{
coord: toCoord
}
]);
}
}
return res;
};
var series = [];
[
["杭州", BJData]
].forEach(function(item, i) {
series.push({
name: '',
type: 'map',
geoIndex: 0,
mapType: 'world',
// layoutCenter: ["50%", "50%"], //地图位置
// layoutSize: "160%",
roam: true,
itemStyle: {
emphasis: {
label: {
show: true
}
}
},
data: worlddata
}, {
type: "effectScatter",
coordinateSystem: "geo",
zlevel: 2,
rippleEffect: {
//涟漪特效
period: 4, //动画时间,值越小速度越快
brushType: "stroke", //波纹绘制方式 stroke, fill
scale: 6 //波纹圆环最大限制,值越大波纹越大
},
label: {
normal: {
show: true,
color: "#fff",
position: "right", //显示位置
offset: [5, 0], //偏移设置
formatter: "{b}" //圆环显示文字
},
emphasis: {
show: true,
color: "#FF6A6A"
}
},
symbol: "circle",
symbolSize: function(val) {
return 6 + val[2] / 1000; //圆环大小
},
itemStyle: {
normal: {
show: true,
color: "#fff",
},
emphasis: {
show: true,
color: "#FF6A6A"
}
},
data: item[1].map(function(dataItem) {
return {
name: dataItem[0].name,
value: geoCoordMap[dataItem[0].name].concat([100]),
visualMap: false
};
})
},
//被攻击点
{
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: "red",
fontWeight: 'bold'
}
},
emphasis: {
show: true,
color: "#FF6A6A"
}
},
symbol: "pin",
symbolSize: 30,
itemStyle: {
normal: {
show: true,
color: "red",
fontWeight: 'bolder'
},
emphasis: {
show: true,
color: "#FF6A6A",
fontWeight: 'bolder'
}
},
data: [{
name: item[0],
value: geoCoordMap[item[0]].concat([100]),
visualMap: false
}]
}
);
});
option = {
// backgroundColor: '#000',
tooltip: {
trigger: "item",
// backgroundColor: "#1540a1",
borderColor: "#FFFFCC",
showDelay: 0,
hideDelay: 0,
enterable: true,
transitionDuration: 0,
extraCssText: "z-index:100",
formatter: function(params, ticket, callback) {
//根据业务自己拓展要显示的内容
var res = "";
var name = params.name;
var value = params.value[params.seriesIndex + 1];
res =
"<span style='color:#fff;'>" +
name +
"</span><br/>数据:" +
value;
return res;
}
},
visualMap: {
//图例值控制
show: true,
type: 'piecewise',
min: 0,
max: 300,
splitNumber: 6,
color: ['#d94e5d', '#eac736', '#50a3ba'],
// color: ['rgba(23,216,161,0.5)', 'rgba(244,201,7,0.5)', 'rgba(129,59,219,0.5)', 'rgba(219,51,90,0.5)'],
// color: ['orangered','yellow','lightskyblue'],
calculable: true,
textStyle: {
color: '#fff',
fontWeight: 'bold'
},
// inRange: {
// color: ['#ffffff', '#E0DAFF', '#ADBFFF', '#9CB4FF', '#6A9DFF', '#3889FF']
// }
left: 160,
bottom: 150,
itemWidth: 30,
itemHeight: 20,
// text:['合作次数','']
},
geo: {
map: "world",
show: true,
label: {
emphasis: {
show: false
}
},
roam: true, //是否允许缩放
layoutCenter: ["48.3%", "50%"], //地图位置
layoutSize: "180%",
itemStyle: {
normal: {
show: 'true',
color: "#04284e", //地图背景色
borderColor: "#5bc1c9" //省市边界线
},
emphasis: {
show: 'true',
color: "rgba(37, 43, 61, .5)" //悬浮背景
}
}
},
series: series
};