vue+echarts 实现世界地图
1 | <div id= "map" style= "position: relative; width: 5.95rem; height: 5rem; padding: 0px; margin: 0px; border-width: 0px; cursor: default;" ></div> |
// import world from '@/assets/world.json' import * as echarts from "echarts"; export default { name: "HelloWorld", data() { return { value: "world", myChart:null, // 注册地图json jsonMap: { 'world':world, }, // 全球数据 worldData :[ {name: '美国', gold: 46, silver: 29, copper: 29, value: 104}, {name: '中国', gold: 38, silver: 27, copper: 23, value: 88}, {name: '英国', gold: 29, silver: 17, copper: 19, value: 65}, {name: '俄罗斯', gold: 24, silver: 25, copper: 33, value: 82}, {name: '韩国', gold: 13, silver: 8, copper: 7, value: 28}, {name: '德国', gold: 11, silver: 19, copper: 14, value: 44}, {name: '法国', gold: 11, silver: 11, copper: 12, value: 34}, {name: '意大利', gold: 8, silver: 9, copper: 11, value: 28}, {name: '匈牙利', gold: 8, silver: 4, copper: 5, value: 17}, {name: '澳大利亚', gold: 7, silver: 16, copper: 12, value: 35}, {name: '日本', gold: 7, silver: 14, copper: 17, value: 38}, {name: '哈萨克斯坦', gold: 7, silver: 1, copper: 5, value: 13}, {name: '荷兰', gold: 6, silver: 6, copper: 8, value: 20}, {name: '乌克兰', gold: 6, silver: 5, copper: 9, value: 20}, {name: '古巴', gold: 5, silver: 3, copper: 6, value: 14}, {name: '新西兰', gold: 5, silver: 3, copper: 5, value: 13}, {name: '伊朗', gold: 4, silver: 5, copper: 3, value: 12}, {name: '牙买加', gold: 4, silver: 4, copper: 4, value: 12}, {name: '捷克', gold: 4, silver: 3, copper: 3, value: 10}, {name: '朝鲜', gold: 4, silver: 0, copper: 2, value: 6}, {name: '西班牙', gold: 3, silver: 10, copper: 4, value: 17}, {name: '巴西', gold: 3, silver: 5, copper: 9, value: 17}, {name: '白俄罗斯', gold: 3, silver: 5, copper: 5, value: 13}, {name: '南非', gold: 3, silver: 2, copper: 1, value: 6}, {name: '埃塞俄比亚', gold: 3, silver: 1, copper: 3, value: 7}, {name: '克罗地亚', gold: 3, silver: 1, copper: 2, value: 6}, {name: '罗马尼亚', gold: 2, silver: 5, copper: 2, value: 9}, {name: '肯尼亚', gold: 2, silver: 4, copper: 5, value: 11}, {name: '丹麦', gold: 2, silver: 4, copper: 3, value: 9}, {name: '波兰', gold: 2, silver: 2, copper: 6, value: 10}, {name: '阿塞拜疆', gold: 2, silver: 2, copper: 6, value: 10}, {name: '土耳其', gold: 2, silver: 2, copper: 1, value: 5}, {name: '瑞士', gold: 2, silver: 2, copper: 0, value: 4}, {name: '立陶宛', gold: 2, silver: 1, copper: 2, value: 5}, {name: '挪威', gold: 2, silver: 1, copper: 1, value: 4}, {name: '加拿大', gold: 1, silver: 5, copper: 12, value: 18}, {name: '瑞典', gold: 1, silver: 4, copper: 3, value: 8}, {name: '哥伦比亚', gold: 1, silver: 3, copper: 4, value: 8}, {name: '格鲁吉亚', gold: 1, silver: 3, copper: 3, value: 7}, {name: '墨西哥', gold: 1, silver: 3, copper: 3, value: 7}, {name: '爱尔兰', gold: 1, silver: 1, copper: 3, value: 5}, {name: '塞尔维亚', gold: 1, silver: 1, copper: 2, value: 4}, {name: '斯洛文尼亚', gold: 1, silver: 1, copper: 2, value: 4}, {name: '阿根廷', gold: 1, silver: 1, copper: 2, value: 4}, {name: '突尼斯', gold: 1, silver: 1, copper: 1, value: 3}, {name: '多米尼加', gold: 1, silver: 1, copper: 0, value: 2}, {name: '乌兹别克斯坦', gold: 1, silver: 0, copper: 3, value: 4}, {name: '特立尼达和多巴哥', gold: 1, silver: 0, copper: 3, value: 4}, {name: '拉脱维亚', gold: 1, silver: 0, copper: 1, value: 2}, {name: '格林纳达', gold: 1, silver: 0, copper: 0, value: 1}, {name: '巴哈马', gold: 1, silver: 0, copper: 0, value: 1}, {name: '乌干达', gold: 1, silver: 0, copper: 0, value: 1}, {name: '委内瑞拉', gold: 1, silver: 0, copper: 0, value: 1}, {name: '阿尔及利亚', gold: 1, silver: 0, copper: 0, value: 1}, {name: '印度', gold: 0, silver: 2, copper: 4, value: 6}, {name: '蒙古', gold: 0, silver: 2, copper: 3, value: 5}, {name: '泰国', gold: 0, silver: 2, copper: 1, value: 3}, {name: '埃及', gold: 0, silver: 2, copper: 0, value: 2}, {name: '斯洛伐克', gold: 0, silver: 1, copper: 3, value: 4}, {name: '比利时', gold: 0, silver: 1, copper: 2, value: 3}, {name: '芬兰', gold: 0, silver: 1, copper: 2, value: 3}, {name: '亚美尼亚', gold: 0, silver: 1, copper: 2, value: 3}, {name: '马来西亚', gold: 0, silver: 1, copper: 1, value: 2}, {name: '中华台北', gold: 0, silver: 1, copper: 1, value: 2}, {name: '爱沙尼亚', gold: 0, silver: 1, copper: 1, value: 2}, {name: '保加利亚', gold: 0, silver: 1, copper: 1, value: 2}, {name: '印度尼西亚', gold: 0, silver: 1, copper: 1, value: 2}, {name: '波多黎各', gold: 0, silver: 1, copper: 1, value: 2}, {name: '黑山', gold: 0, silver: 1, copper: 0, value: 1}, {name: '博茨瓦纳', gold: 0, silver: 1, copper: 0, value: 1}, {name: '塞浦路斯', gold: 0, silver: 1, copper: 0, value: 1}, {name: '葡萄牙', gold: 0, silver: 1, copper: 0, value: 1}, {name: '加蓬', gold: 0, silver: 1, copper: 0, value: 1}, {name: '危地马拉', gold: 0, silver: 1, copper: 0, value: 1}, {name: '卡塔尔', gold: 0, silver: 0, copper: 2, value: 2}, {name: '新加坡', gold: 0, silver: 0, copper: 2, value: 2}, {name: '希腊', gold: 0, silver: 0, copper: 2, value: 2}, {name: '摩尔多瓦', gold: 0, silver: 0, copper: 2, value: 2}, {name: '巴林', gold: 0, silver: 0, copper: 1, value: 1}, {name: '塔吉克斯坦', gold: 0, silver: 0, copper: 1, value: 1}, {name: '中国香港', gold: 0, silver: 0, copper: 1, value: 1}, {name: '摩洛哥', gold: 0, silver: 0, copper: 1, value: 1}, {name: '沙特阿拉伯', gold: 0, silver: 0, copper: 1, value: 1}, {name: '科威特', gold: 0, silver: 0, copper: 1, value: 1}, {name: '阿富汗', gold: 0, silver: 0, copper: 1, value: 1} ], // 全球地域中文映射 nameMap : { 'Afghanistan':'阿富汗', 'Albania':'阿尔巴尼亚', 'Algeria':'阿尔及利亚', 'Andorra':'安道尔', 'Angola':'安哥拉', 'Antarctica':'南极洲', 'Antigua and Barbuda':'安提瓜和巴布达', 'Argentina':'阿根廷', 'Armenia':'亚美尼亚', 'Australia':'澳大利亚', 'Austria':'奥地利', 'Azerbaijan':'阿塞拜疆', 'The Bahamas':'巴哈马', 'Bahrain':'巴林', 'Bangladesh':'孟加拉国', 'Barbados':'巴巴多斯', 'Belarus':'白俄罗斯', 'Belgium':'比利时', 'Belize':'伯利兹', 'Benin':'贝宁', 'Bermuda':'百慕大', 'Bhutan':'不丹', 'Bolivia':'玻利维亚', 'Bosnia and Herzegovina':'波斯尼亚和黑塞哥维那', 'Botswana':'博茨瓦纳', 'Brazil':'巴西', 'Brunei':'文莱', 'Bulgaria':'保加利亚', 'Burkina Faso':'布基纳法索', 'Burundi':'布隆迪', 'Cambodia':'柬埔寨', 'Cameroon':'喀麦隆', 'Canada':'加拿大', 'Cape Verde':'佛得角', 'Central African Rep.':'中非共和国', "Côte d'Ivoire":'象牙海岸', 'Chad':'乍得', 'Chile':'智利', 'China':'中国', 'Colombia':'哥伦比亚', 'Comoros':'科摩罗', 'Dem. Rep. Congo':'刚果共和国', 'Congo':'刚果', 'Costa Rica':'哥斯达黎加', 'Croatia':'克罗地亚', 'Cuba':'古巴', 'Cyprus':'塞浦路斯', 'Czech Republic':'捷克共和国', 'Denmark':'丹麦', 'Djibouti':'吉布提', 'Dominica':'多米尼加', 'Dominican Republic':'多明尼加共和国', 'Ecuador':'厄瓜多尔', 'Egypt':'埃及', 'El Salvador':'萨尔瓦多', 'Equatorial Guinea':'赤道几内亚', 'Eritrea':'厄立特里亚', 'Estonia':'爱沙尼亚', 'Ethiopia':'埃塞俄比亚', 'Falkland Islands':'福克兰群岛', 'Faroe Islands':'法罗群岛', 'Fiji':'斐济', 'Finland':'芬兰', 'France':'法国', 'French Guiana':'法属圭亚那', 'French Southern and Antarctic Lands':'法属南半球和南极领地', 'Gabon':'加蓬', 'Gambia':'冈比亚', 'Gaza Strip':'加沙', 'Georgia':'格鲁吉亚', 'Germany':'德国', 'Ghana':'加纳', 'Greece':'希腊', 'Greenland':'格陵兰', 'Grenada':'格林纳达', 'Guadeloupe':'瓜德罗普', 'Guatemala':'危地马拉', 'Guinea':'几内亚', 'Guinea Bissau':'几内亚比绍', 'Guyana':'圭亚那', 'Haiti':'海地', 'Honduras':'洪都拉斯', 'Hong Kong':'香港', 'Hungary':'匈牙利', 'Iceland':'冰岛', 'India':'印度', 'Indonesia':'印尼', 'Iran':'伊朗', 'Iraq':'伊拉克', 'Iraq-Saudi Arabia Neutral Zone':'伊拉克阿拉伯中立区', 'Ireland':'爱尔兰', 'Isle of Man':'马恩岛', 'Israel':'以色列', 'Italy':'意大利', 'Ivory Coast':'科特迪瓦', 'Jamaica':'牙买加', 'Jan Mayen':'扬马延岛', 'Japan':'日本', 'Jordan':'约旦', 'Kazakhstan':'哈萨克斯坦', 'Kenya':'肯尼亚', 'Kerguelen':'凯尔盖朗群岛', 'Kiribati':'基里巴斯', 'North Korea':'北朝鲜', 'South Korea':'韩国', 'Kuwait':'科威特', 'Kyrgyzstan':'吉尔吉斯斯坦', 'Lao PDR':'老挝', 'Latvia':'拉脱维亚', 'Lebanon':'黎巴嫩', 'Lesotho':'莱索托', 'Liberia':'利比里亚', 'Libya':'利比亚', 'Liechtenstein':'列支敦士登', 'Lithuania':'立陶宛', 'Luxembourg':'卢森堡', 'Macau':'澳门', 'Macedonia':'马其顿', 'Madagascar':'马达加斯加', 'Malawi':'马拉维', 'Malaysia':'马来西亚', 'Maldives':'马尔代夫', 'Mali':'马里', 'Malta':'马耳他', 'Martinique':'马提尼克', 'Mauritania':'毛里塔尼亚', 'Mauritius':'毛里求斯', 'Mexico':'墨西哥', 'Moldova':'摩尔多瓦', 'Monaco':'摩纳哥', 'Mongolia':'蒙古', 'Morocco':'摩洛哥', 'Mozambique':'莫桑比克', 'Myanmar':'缅甸', 'Namibia':'纳米比亚', 'Nepal':'尼泊尔', 'Netherlands':'荷兰', 'New Caledonia':'新喀里多尼亚', 'New Zealand':'新西兰', 'Nicaragua':'尼加拉瓜', 'Niger':'尼日尔', 'Nigeria':'尼日利亚', 'Northern Mariana Islands':'北马里亚纳群岛', 'Norway':'挪威', 'Oman':'阿曼', 'Pakistan':'巴基斯坦', 'Panama':'巴拿马', 'Papua New Guinea':'巴布亚新几内亚', 'Paraguay':'巴拉圭', 'Peru':'秘鲁', 'Philippines':'菲律宾', 'Poland':'波兰', 'Portugal':'葡萄牙', 'Puerto Rico':'波多黎各', 'Qatar':'卡塔尔', 'Reunion':'留尼旺岛', 'Romania':'罗马尼亚', 'Russia':'俄罗斯', 'Rwanda':'卢旺达', 'San Marino':'圣马力诺', 'Sao Tome and Principe':'圣多美和普林西比', 'Saudi Arabia':'沙特阿拉伯', 'Senegal':'塞内加尔', 'Seychelles':'塞舌尔', 'Sierra Leone':'塞拉利昂', 'Singapore':'新加坡', 'Slovakia':'斯洛伐克', 'Slovenia':'斯洛文尼亚', 'Solomon Islands':'所罗门群岛', 'Somalia':'索马里', 'S. Sudan':'苏丹', 'South Africa':'南非', 'Spain':'西班牙', 'Sri Lanka':'斯里兰卡', 'St. Christopher-Nevis':'圣', 'St. Lucia':'圣露西亚', 'St. Vincent and the Grenadines':'圣文森特和格林纳丁斯', 'Sudan':'苏丹', 'Suriname':'苏里南', 'Svalbard':'斯瓦尔巴特群岛', 'Swaziland':'斯威士兰', 'Sweden':'瑞典', 'Switzerland':'瑞士', 'Syria':'叙利亚', 'Taiwan':'台湾', 'Tajikistan':'塔吉克斯坦', 'United Republic of Tanzania':'坦桑尼亚', 'Thailand':'泰国', 'Togo':'多哥', 'Tonga':'汤加', 'Trinidad and Tobago':'特里尼达和多巴哥', 'Tunisia':'突尼斯', 'Turkey':'土耳其', 'Turkmenistan':'土库曼斯坦', 'Tanzania':'坦桑尼亚', 'Turks and Caicos Islands':'特克斯和凯科斯群岛', 'Uganda':'乌干达', 'Ukraine':'乌克兰', 'United Arab Emirates':'阿联酋', 'United Kingdom':'英国', 'United States':'美国', 'Uruguay':'乌拉圭', 'Uzbekistan':'乌兹别克斯坦', 'Vanuatu':'瓦努阿图', 'Venezuela':'委内瑞拉', 'Vietnam':'越南', 'Western Sahara':'西撒哈拉', 'Western Samoa':'西萨摩亚', 'Yemen':'也门', 'Yugoslavia':'南斯拉夫', 'Democratic Republic of the Congo':'刚果民主共和国', 'Zambia':'赞比亚', 'Zimbabwe':'津巴布韦', 'South Sudan':'南苏丹', 'Somaliland':'索马里兰', 'Montenegro':'黑山', 'Kosovo':'科索沃', 'Republic of Serbia':'塞尔维亚', }, }; }, created(){ echarts.registerMap('world', world) }, mounted(){ // 初始化地图 this.chinaConfigure(this.value); }, methods:{ chinaConfigure(area) { let option; this.myChart =echarts.init(document.getElementById("map")); //这里是为了获得容器所在位置 window.onresize = this.myChart.resize; // let option={ // 进行相关配置 // visualMap: { // show:false, // max: 110, // calculable: false, // inRange: { // color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] // } // }, // series: [{ // type: 'map', // map: area, // data: area=='world'?this.worldData:area, // nameMap: area=='world'?this.nameMap:{} // }] // } function mapOptions() { let colorList = ['#4ab2e5', '#4fb6d2', '#52b9c7', '#5abead', '#f34e2b', '#f56321', '#f56f1c', '#f58414' , '#f58f0e' , '#f5a305' , '#e7ab0b' , '#dfae10' , '#d5b314' , '#c1bb1f' , '#b9be23' , '#a6c62c' , '#96cc34'] var geoCoordMap = { 济南: [116.98, 36.67], 北京: [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: 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({ type: 'map', roam: false, label: { show: !1, // normal: { // show: true, // textStyle: { // color: '#1DE9B6' // } // }, // emphasis: { // textStyle: { // color: 'rgb(183,185,14)' // } // } }, tooltip: { show: !1 }, itemStyle: { normal: { borderColor: 'rgb(147, 235, 248)', borderWidth: 0.1, areaColor: { x: 150, y: 150, x2: 0, y2: 0, colorStops: [ { offset: 0, color: "#031d5f" // 0% 处的颜色 }, { offset: 0.45, color: "#00a1f6" }, { offset: 1, color: "#00a2f7" // 50% 处的颜色 } ], global: true // 缺省为 false } // areaColor: { // type: 'radial', // x: 0.5, // y: 0.5, // r: 0.8, // colorStops: [{ // offset: 0, // // color: 'rgb(210,246,253)' // 0% 处的颜色 // color: 'rgb(5,41,122)' // 0% 处的颜色 // }, { // offset: 1, // color: 'rgb(5,41,122)' // 100% 处的颜色 // }], // globalCoord: true // 缺省为 false // }, }, emphasis: { label: { // show: !1, color: '#fff', }, areaColor: 'rgb(46,229,206)', // shadowColor: 'rgb(12,25,50)', borderWidth: 0.1 } }, zoom: 1.05, // roam: false, map: 'world' //使用 // data: this.difficultData //热力图数据 不同区域 不同的底色 }, { name: item[2], type: "lines", zlevel: 2, effect: { show: true, period: 4, //箭头指向速度,值越小速度越快 trailLength: 0.4, //特效尾迹长度[0,1]值越大,尾迹越长重 symbol: "arrow", //箭头图标 symbolSize: 2 //图标大小 }, lineStyle: { normal: { color: "#fff", width: 1, //线条宽度 opacity: 0.1, //尾迹线条透明度 curveness: 0.3 //尾迹线条曲直度 } }, label: { normal: { show: false, position: 'middle', formatter: '{b}' } }, data: convertData(item[1]) }, { type: "effectScatter", coordinateSystem: "geo", showEffectOn: "render", zlevel: 1, rippleEffect: { period: 6, scale: 2.4, brushType: "stroke" }, label: { normal: { show: false, position: "right", //显示位置 offset: [5, 0], //偏移设置 formatter: "{b}", //圆环显示文字 textStyle: { color: "rgb(214,206,143)" } }, }, emphasis: { show: true, scale: !0, label: { show: true, backgroundColor: '#000', padding: 2, borderRadius: 2, color: "#fff" } }, symbol: "circle", // symbolSize: function (val) { // return 4 + val[2] / 1000; //圆环大小 // }, itemStyle: { normal: { show: false, color: function (item, index) { let color = colorList[item.dataIndex] || "#" + ("00000" + ((Math.random() * 16777215 + 0.5) >> 0).toString(16)).slice(-6) return color } } }, data: item[1].map(function (dataItem) { return { name: dataItem[0].name, value: geoCoordMap[dataItem[0].name].concat([dataItem[0].value]) }; }) }, //被攻击点 // { // show: false, // type: "scatter", // coordinateSystem: "geo", // zlevel: 2, // rippleEffect: { // period: 4, // brushType: "stroke", // scale: 1 // }, // label: { // normal: { // show: true, // position: "right", // color: "#9966cc", // formatter: "{b}", // textStyle: { // color: "#fff" // } // }, // emphasis: { // show: true // } // }, // symbol: "pin", // symbolSize: 30, // itemStyle: { // normal: { // show: true, // color: "#9966cc" // } // }, // data: [{ // name: item[0], // value: geoCoordMap[item[0]].concat([10]) // }] // } ); }); option = { grid: { right: '8%', // top:'5%' }, geo: { map: 'world', aspectScale: 0.75, //长宽比 zoom: 1.05, tooltip: { show: !1 }, scaleLimit: { min: 1, max: 5, }, label: { show: !1 }, roam: false, itemStyle: { normal: { areaColor: { type: 'radial', x: 0.5, y: 0.5, r: 0.8, colorStops: [{ offset: 0, color: '#09132c' // 0% 处的颜色 }, { offset: 1, color: '#274d68' // 100% 处的颜色 }], globalCoord: true // 缺省为 false }, shadowColor: 'rgb(106,203,243)', // #022764 shadowOffsetX: -3, //阴影偏移量 shadowOffsetY: 6 }, emphasis: { areaColor: '#2AB8FF', borderWidth: 0, color: '#fff', label: { show: false } } }, }, // tooltip: { // trigger: "item", // }, zlevel: 999, series: [...series], } return option } option = mapOptions() this.myChart.setOption(option,true); }, } };
世界地图json文件下载地址:
//files.cnblogs.com/files/h5it/world.json
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具