echarts实现世界地图,给不同数值的国家着色,并根据经纬度在对应位置上添加标签(一)

效果图如下:

鼠标移到国家上显示tooltip(白色模块)

html代码如下:

<div class="worldEchart-page">
    <div id="echartsMap" style="width: 954px;height: 446px;">
    </div>
</div>

js代码如下:

mounted:function(){
	this.getCountryList()
}
// 将坐标与值对应并反映在地图上
convertData(data) {
    var res = [];
    var that = this
    for (var i = 0; i < data.length; i++) {
        var geoCoord = that.geoCoordMap[data[i].name];
        console.log('geoCoord',geoCoord)
        if (geoCoord) {
            res.push({
                name: data[i].name,
                value: geoCoord.concat(data[i].value)
            });
        }
    }
    console.log('----res----',res)
    return res;
},
/*获取国家列表*/
getCountryList() {
	var that = this;
	/* 根据请求的数据实例化地图 */
	var chart = echarts.init(document.getElementById('echartsMap'));
	//console.log('chart----',chart)
	chart.setOption({
		visualMap: { // 分区域着色
	        //min: 0,
	        //max: 2200000,
	        type: 'piecewise',
	        // splitNumber:5, //对于连续型数据,自动平均切分成几段。默认为5段
	        hoverLink:false,
	        itemWidth:12,    //图形的宽度,即长条的宽度。
	        itemHeight:12,   //图形的高度,即长条的高度。
	        pieces: [ //自定义『分段式视觉映射组件(visualMapPiecewise)』的每一段的范围,以及每一段的文字,以及每一段的特别的样式
	            {min: 1500, label: '出口额占比75-100%',color:'#3267D7'},                     // 不指定 max,表示 max 为无限大(Infinity)。
	            {min: 900, max: 1500, label: '出口额占比50-75%',color:'#1681F0'},
	            {min: 310, max: 1000,label:'出口额占比25-50%',color:'#41ABFF'},
	            {min: 0, max: 300,label:'出口额占比1-25%',color:'#A3CBFF'},
	            //{max: 0,label:'无数据',color:'#EDEDED'}
	            {value: 0, label: '无数据', color: '#EDEDED'}, // 表示 value 等于 123 的情况。
	            // 不指定 min,表示 min 为无限大(-Infinity)。
	        ],
	        textStyle: { //文本样式
	            color: '#777F86'
	        },
	        bottom: 15 // 组件离容器下侧的距离
	    },
	    // 移到国家上的效果
	    tooltip: {
	    	trigger: 'item',
	        padding: 0,
	        enterable: true,
	        transitionDuration: 1,
	        textStyle: {
	            color: '#818A91',
	            decoration: 'none',
	        },
	        backgroundColor: 'rgba(255,255,255,0.96)',
	       // borderColor:'#000000',
	        //borderWidth: 1,
	        formatter: function(params) {
	        	console.log('移到某个国家上:',params)
	            var tipHtml = '';
	            tipHtml = '<div style="box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.3);border-radius:4px;padding:30px 20px;">'+
	            '<div style="font-size: 16px;">'+params.name+'</div>'+
	            '<div style="padding:6px 0;"><i style="display: inline-block;margin-bottom: 3px;width:6px;margin-right:6px;height: 6px;background: #3472EE;border-radius: 50%;"></i>2018年整体进口额为10000323万元;</div>'+
	            '<div style="padding:6px 0;"><i style="display: inline-block;margin-bottom: 3px;width:6px;margin-right:6px;height: 6px;background: #3472EE;border-radius: 50%;"></i>2018年整体进口所占份额为13%;</div>'+
	            '<div style="padding:6px 0;"><i style="display: inline-block;margin-bottom: 3px;width:6px;margin-right:6px;height: 6px;background: #3472EE;border-radius: 50%;"></i>2018年年进口额增长率为-10%;</div>'+
	            '</div>'
	            return tipHtml;
	        }
	    },
	    geo: {
	        	type: 'map',
	            name: '世界地图',
	            map: 'world',
	            roam: true, // 是否开启鼠标缩放和平移漫游
	            itemStyle: { // 每个区域的样式
					normal: {
						areaColor: '#EDEDED',
						borderColor: '#D3D7E1', // 图形的描边颜色
						borderWidth: 1 //描边线宽
					},
					emphasis: { // 高亮状态
						//areaColor: '#7d7d7d'
					}
				},
				left: 20, // 组件离容器左侧的距离
				top: 20, // 组件离容器上侧的距离
				right: 160,
				//nameMap: that.nameMap, //自定义地区的名称映射(bug1:加了这个visualMap会错乱)
				data: that.tempData
	    },
        series: [
	        {
	            type: 'map',
	            name: '世界地图',
	            map: 'world',
	            zlevel:2,
	            roam: true, // 是否开启鼠标缩放和平移漫游
	            itemStyle: { // 每个区域的样式
					normal: {
						areaColor: '#EDEDED',
						borderColor: '#D3D7E1', // 图形的描边颜色
						borderWidth: 1 //描边线宽
					},
					emphasis: { // 高亮状态
						//areaColor: '#7d7d7d'
					}
				},
				left: 20, // 组件离容器左侧的距离
				top: 20, // 组件离容器上侧的距离
				right: 160,
				//nameMap: that.nameMap, //自定义地区的名称映射(bug1:加了这个visualMap会错乱)
				data: that.tempData
	        },
	        // 打点
	        {
	            type: 'scatter',
	            coordinateSystem: 'geo',
	            data: this.convertData([
	                {name: "中国", value: 110},
	                {name: "以色列", value: 110},
	                {name: "法国", value: 110},
	                {name: "澳大利亚", value: 210},
	                {name: "日本", value: 210},
	                {name: "韩国", value: 210},
	                {name: "新加坡", value: 310}
	            ]),
	            zlevel:12,
	            symbolSize: [20,37], // 标记的大小,[宽、高]
	            //symbol: 'pin', //气泡
	            symbol: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAlCAYAAABCr8kFAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsSAAALEgHS3X78AAAC1klEQVRIx+2WS0gVURjHf6OXvD4jM1+ZVhJmWNfwolmhqxaWRFQgLcwIWkVFG90EEUGhmyBKcpdUCGaPhenClZDgq8iyMqy8lo+0C5nPaz6+FndGx7mP5rqIFv3hwJnvO+d3zjffOd+MggnF1l8WM+MAgswONCtLIINHC68of32H/4H/INCrRCRYRE6LyCMR6RmeGZePk04Rkaeq3fxGRMQmIr3iXx9EZLcZWKEEpkJ/sJQAYZqS9BxFB+wEsrRn1+Ist4fv8tjZyNCvERLXxHE0poCzCaewBoXoGa2KouSuAIrIPuC5ZpxZdHHi3UU6J7o9IrFHZlCz4wahQVa9OUdRlHZYPjbFeu+trw/pGHMgCxEerWPMQeVAnXGdEq2jAXfqvU9G2rzCtFY33GoE7tI6WvmK13sHpuaQxSifCRycnjOaEozAFXUu0bIJx7TTJzA+dL3RFGwMeVDvPRK3x2/IxxP2GoHfjcBOvfdCaj72tWleYfa1aZzbmmcEtmsd7dhkA236Ea6FeW72dnLP0T3lnJ22xoSEuYo3Z4Sf32bHGuzx5chUFKVrhUVEXqzypjR4fdEikrlKYLTP7IlIbYCwS/iTiISIyLhJWB9mJCKHTQJtpoAqtO4PsHLTMBVoERGnD9hnf3NXXLmSsooQIBaILjqYn1OQl11lnFDb2Hyyobn9NfADGKkuL531AJaUVUQA23EXiaVFys4UHUtPTV4qTZ++DNVerXxwXx8M8A3oqS4vnQQILimriAVygSjcVzEJdznKann5Nio9NSU6KiLM2ts/OHrtTs0gsAWIARaBSSACSM7cf+BnV0vTlAWwsVwtDgEp+hCuV9W80j2Gqy1RndcP1KvzbUBTkLrSauXxI2oB3gB2dZVnwEY1rA3qa7CqvgXABYzjLld9LJe9BaDLmJR0IM6YeRM7HAHea0nxdmzigHVAJBCqRmEB5tWdTAMTvo7Nbwng09R+hsh2AAAAAElFTkSuQmCC',
	            symbolOffset:[0, '-50%'], // 标记相对于原本位置的偏移
	            label: {
	                normal: {
	                    show: true,
	                    offset: [18,-10], // 是否对文字进行偏移。默认不偏移。例如:[30, 40] 表示文字在横向上偏移 30,纵向上偏移 40。
                        formatter: function(params) {
                        	console.log('气泡:',params)
                        	return '{fline|'+params.data.name+'}';
                        },
                        position: 'insideTopLeft', // 标签相对于图形包围盒左上角的位置。
                        distance:0,
                        backgroundColor: '#16B47F',
                        padding: [0, 0],
                        borderRadius: 3,
                        // verticalAlign:'middle',
                        // lineHeight: 32,
                        color: '#ffffff',
                        rich: {
                            fline: {
                                padding: [4, 6, 4, 6],
                                color: '#ffffff'
                            }
                        }
	                },
	                emphasis: {
	                    show: false
	                }
	            },
	            itemStyle: {
	                emphasis: {
	                    borderColor: '#fff',
	                    borderWidth: 1
	                }
	            }
	        }
        ]
	})
	// 地图点击事件
	chart.on('click', function(params) {
		console.log('---params----',params)
	})
}

数据定义如下: 

chart: null,
geoCoordMap: {},
OMData: [],
// 小飞机的图标,可以用其他图形替换
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',
color: ['#9ae5fc', '#dcbf71'], // 自定义图中要用到的颜色
series: [],
tempData: [	
	{
            name: 'United States',
            value: 2025441
        },
        {
            name: 'China',
            value: 0
        },
        {
            name: 'Brazil',
            value: 200
        },
        {
            name: 'Russia',
            value: 1000
        },
        {
            name: 'United Kingdom',
            value: 288827
        },
        {
            name: 'Spain',
            value: 288797
        },
        {
            name: 'India',
            value: 265869
        },
        {
            name: 'Italy',
            value: 235278
        },
        {
            name: 'Peru',
            value: 196515
        },
        {
            name: 'France',
            value: 191313
        },
        {
            name: 'Germany',
            value: 186109
        },
        {
            name: 'Iran',
            value: 173832
        },
        {
            name: 'Turkey',
            value: 171121
        },
        {
            name: 'Chile',
            value: 138846
        },
        {
            name: 'Mexico',
            value: 117103
        },
        {
            name: 'Saudi Arabia',
            value: 105283
        },
        {
            name: 'Pakistan',
            value: 103671
        },
        {
            name: 'Canada',
            value: 97498
        },
        {
            name: 'Qatar',
            value: 70158
        },
        {
            name: 'Bengal',
            value: 68504
        },
        {
            name: 'Belgium',
            value: 59348
        },
        {
            name: 'South Africa',
            value: 50879
        },
        {
            name: 'Belarus',
            value: 49453
        },
        {
            name: 'Netherlands',
            value: 47945
        },
        {
            name: 'Sweden',
            value: 45133
        },
        {
            name: 'Ecuador',
            value: 43378
        },
        {
            name: 'UAE',
            value: 39376
        },
        {
            name: 'Colombia',
            value: 39364
        },
        {
            name: 'Singapore',
            value: 38296
        },
        {
            name: 'Egypt',
            value: 35444
        },
        {
            name: 'Portugal',
            value: 34885
        },
        {
            name: 'Kuwait',
            value: 32510
        },
        {
            name: 'Indonesia',
            value: 32033
        },
        {
            name: 'Switzerland',
            value: 30972
        },
        {
            name: 'Ukraine',
            value: 28077
        },
        {
            name: 'Poland',
            value: 27160
        },
        {
            name: 'Ireland',
            value: 25207
        },
        {
            name: 'Argentina',
            value: 22794
        },
        {
            name: 'Philippines',
            value: 22474
        },
        {
            name: 'Afghanistan',
            value: 20917
        },
        {
            name: 'Romania',
            value: 20604
        },
        {
            name: 'Dominica',
            value: 20126
        },
        {
            name: 'Israel',
            value: 18032
        },
        {
            name: 'Oman',
            value: 17486
        },
        {
            name: 'Japan',
            value: 17060
        },
        {
            name: 'Austria',
            value: 16968
        },
        {
            name: 'Panama',
            value: 16425
        },
        {
            name: 'Bahrain',
            value: 15417
        },
        {
            name: 'Bolivia',
            value: 13643
        },
        {
            name: 'Iraq',
            value: 13481
        },
        {
            name: 'Armenia',
            value: 13325
        },
        {
            name: 'Kazakhstan',
            value: 12859
        },
        {
            name: 'Nigeria',
            value: 12486
        },
        {
            name: 'Denmark',
            value: 12162
        },
        {
            name: 'Serbia',
            value: 11896
        },
        {
            name: 'Korea',
            value: 11814
        },
        {
            name: 'Algeria',
            value: 10265
        },
        {
            name: 'Ghana',
            value: 9910
        },
        {
            name: 'Moldova',
            value: 9807
        },
        {
            name: 'Czech Republic',
            value: 9670
        },
        {
            name: 'Norway',
            value: 8561
        },
        {
            name: 'Malaysia',
            value: 8329
        },
        {
            name: 'Morocco',
            value: 8302
        },
        {
            name: 'Cameroon',
            value: 8060
        },
        {
            name: 'Azerbaijan',
            value: 7876
        },
        {
            name: 'Australia',
            value: 7265
        },
        {
            name: 'Guatemala',
            value: 7055
        },
        {
            name: 'Finland',
            value: 7001
        },
        {
            name: 'Honduras',
            value: 6327
        },
        {
            name: 'Sudan',
            value: 6081
        },
        {
            name: 'Tajikistan',
            value: 4609
        },
        {
            name: 'Uzbekistan',
            value: 4440
        },
        {
            name: 'Senegal',
            value: 4427
        },
        {
            name: 'Djibouti',
            value: 4278
        },
        {
            name: 'Guinea',
            value: 4117
        },
        {
            name: 'Congo (DRC)',
            value: 4106
        },
        {
            name: 'Luxembourg',
            value: 4040
        },
        {
            name: 'Hungary',
            value: 4014
        },
        {
            name: 'Ivory Coast',
            value: 3881
        },
        {
            name: 'Nepal',
            value: 3762
        },
        {
            name: 'Haiti',
            value: 3334
        },
        {
            name: 'North Macedonia',
            value: 3152
        },
        {
            name: 'Thailand',
            value: 3119
        },
        {
            name: 'Salvador',
            value: 3104
        },
        {
            name: 'Gabon',
            value: 3101
        },
        {
            name: 'Greece',
            value: 3049
        },
        {
            name: 'Kenya',
            value: 2872
        },
        {
            name: 'Bulgaria',
            value: 2727
        },
        {
            name: 'Bosnia and Herzegovina',
            value: 2704
        },
        {
            name: 'Venezuela',
            value: 2377
        },
        {
            name: 'Somalia',
            value: 2368
        },
        {
            name: 'Croatia',
            value: 2247
        },
        {
            name: 'Cuba',
            value: 2200
        },
        {
            name: 'Ethiopia',
            value: 2156
        }
],
nameMap: {
    'Afghanistan': '阿富汗',
    'Angola': '安哥拉',
    'Albania': '阿尔巴尼亚',
    'United Arab Emirates': '阿联酋',
    'Argentina': '阿根廷',
    'Armenia': '亚美尼亚',
    'French Southern and Antarctic Lands': '法属南半球和南极领地',
    'Australia': '澳大利亚',
    'Austria': '奥地利',
    'Azerbaijan': '阿塞拜疆',
    'Burundi': '布隆迪',
    'Belgium': '比利时',
    'Benin': '贝宁',
    'Burkina Faso': '布基纳法索',
    'Bangladesh': '孟加拉国',
    'Bulgaria': '保加利亚',
    'The Bahamas': '巴哈马',
    'Bosnia and Herzegovina': '波斯尼亚和黑塞哥维那',
    'Belarus': '白俄罗斯',
    'Belize': '伯利兹',
    'Bermuda': '百慕大',
    'Bolivia': '玻利维亚',
    'Brazil': '巴西',
    'Brunei': '文莱',
    'Bhutan': '不丹',
    'Botswana': '博茨瓦纳',
    'Central African Republic': '中非共和国',
    'Canada': '加拿大',
    'Switzerland': '瑞士',
    'Chile': '智利',
    'China': '中国',
    'Ivory Coast': '象牙海岸',
    'Cameroon': '喀麦隆',
    'Democratic Republic of the Congo': '刚果民主共和国',
    'Republic of the Congo': '刚果共和国',
    'Colombia': '哥伦比亚',
    'Costa Rica': '哥斯达黎加',
    'Cuba': '古巴',
    'Northern Cyprus': '北塞浦路斯',
    'Cyprus': '塞浦路斯',
    'Czech Republic': '捷克共和国',
    'Germany': '德国',
    'Djibouti': '吉布提',
    'Denmark': '丹麦',
    'Dominican Republic': '多明尼加共和国',
    'Algeria': '阿尔及利亚',
    'Ecuador': '厄瓜多尔',
    'Egypt': '埃及',
    'Eritrea': '厄立特里亚',
    'Spain': '西班牙',
    'Estonia': '爱沙尼亚',
    'Ethiopia': '埃塞俄比亚',
    'Finland': '芬兰',
    'Fiji': '斐',
    'Falkland Islands': '福克兰群岛',
    'France': '法国',
    'Gabon': '加蓬',
    'United Kingdom': '英国',
    'Georgia': '格鲁吉亚',
    'Ghana': '加纳',
    'Guinea': '几内亚',
    'Gambia': '冈比亚',
    'Guinea Bissau': '几内亚比绍',
    'Equatorial Guinea': '赤道几内亚',
    'Greece': '希腊',
    'Greenland': '格陵兰',
    'Guatemala': '危地马拉',
    'French Guiana': '法属圭亚那',
    'Guyana': '圭亚那',
    'Honduras': '洪都拉斯',
    'Croatia': '克罗地亚',
    'Haiti': '海地',
    'Hungary': '匈牙利',
    'Indonesia': '印尼',
    'India': '印度',
    'Ireland': '爱尔兰',
    'Iran': '伊朗',
    'Iraq': '伊拉克',
    'Iceland': '冰岛',
    'Israel': '以色列',
    'Italy': '意大利',
    'Jamaica': '牙买加',
    'Jordan': '约旦',
    'Japan': '日本',
    'Kazakhstan': '哈萨克斯坦',
    'Kenya': '肯尼亚',
    'Kyrgyzstan': '吉尔吉斯斯坦',
    'Cambodia': '柬埔寨',
    'South Korea': '韩国',
    'Kosovo': '科索沃',
    'Kuwait': '科威特',
    'Laos': '老挝',
    'Lebanon': '黎巴嫩',
    'Liberia': '利比里亚',
    'Libya': '利比亚',
    'Sri Lanka': '斯里兰卡',
    'Lesotho': '莱索托',
    'Lithuania': '立陶宛',
    'Luxembourg': '卢森堡',
    'Latvia': '拉脱维亚',
    'Morocco': '摩洛哥',
    'Moldova': '摩尔多瓦',
    'Madagascar': '马达加斯加',
    'Mexico': '墨西哥',
    'Macedonia': '马其顿',
    'Mali': '马里',
    'Myanmar': '缅甸',
    'Montenegro': '黑山',
    'Mongolia': '蒙古',
    'Mozambique': '莫桑比克',
    'Mauritania': '毛里塔尼亚',
    'Malawi': '马拉维',
    'Malaysia': '马来西亚',
    'Namibia': '纳米比亚',
    'New Caledonia': '新喀里多尼亚',
    'Niger': '尼日尔',
    'Nigeria': '尼日利亚',
    'Nicaragua': '尼加拉瓜',
    'Netherlands': '荷兰',
    'Norway': '挪威',
    'Nepal': '尼泊尔',
    'New Zealand': '新西兰',
    'Oman': '阿曼',
    'Pakistan': '巴基斯坦',
    'Panama': '巴拿马',
    'Peru': '秘鲁',
    'Philippines': '菲律宾',
    'Papua New Guinea': '巴布亚新几内亚',
    'Poland': '波兰',
    'Puerto Rico': '波多黎各',
    'North Korea': '北朝鲜',
    'Portugal': '葡萄牙',
    'Paraguay': '巴拉圭',
    'Qatar': '卡塔尔',
    'Romania': '罗马尼亚',
    'Russia': '俄罗斯',
    'Rwanda': '卢旺达',
    'Western Sahara': '西撒哈拉',
    'Saudi Arabia': '沙特阿拉伯',
    'Sudan': '苏丹',
    'South Sudan': '南苏丹',
    'Senegal': '塞内加尔',
    'Solomon Islands': '所罗门群岛',
    'Sierra Leone': '塞拉利昂',
    'El Salvador': '萨尔瓦多',
    'Somaliland': '索马里兰',
    'Somalia': '索马里',
    'Republic of Serbia': '塞尔维亚共和国',
    'Suriname': '苏里南',
    'Slovakia': '斯洛伐克',
    'Slovenia': '斯洛文尼亚',
    'Sweden': '瑞典',
    'Swaziland': '斯威士兰',
    'Syria': '叙利亚',
    'Chad': '乍得',
    'Togo': '多哥',
    'Thailand': '泰国',
    'Tajikistan': '塔吉克斯坦',
    'Turkmenistan': '土库曼斯坦',
    'East Timor': '东帝汶',
    'Trinidad and Tobago': '特里尼达和多巴哥',
    'Tunisia': '突尼斯',
    'Turkey': '土耳其',
    'United Republic of Tanzania': '坦桑尼亚联合共和国',
    'Uganda': '乌干达',
    'Ukraine': '乌克兰',
    'Uruguay': '乌拉圭',
    'United States of America': '美国',
    'Uzbekistan': '乌兹别克斯坦',
    'Venezuela': '委内瑞拉',
    'Vietnam': '越南',
    'Vanuatu': '瓦努阿图',
    'West Bank': '西岸',
    'Yemen': '也门',
    'South Africa': '南非',
    'Zambia': '赞比亚',
    'Zimbabwe': '津巴布韦'
},
// 散点在地图上的坐标
geoCoordMap: { // 经度longitude, 纬度latitude
    "中国": [116.4, 39.9],
    "以色列": [31.046051, 34.851612],
    "法国": [2.352222, 48.856614],
    "澳大利亚": [133.775136,-25.274398],
    "日本": [140, 35.6],
    "韩国": [126.58, 37.33],
    "新加坡": [103.51, 1.17]
},
tempListData: [
        {
            "pubMan":"贸促会",
            "coverPhotoUrl":"proxy/iframefile/qybdirprocess/download/ehn-cms/202078/1431/Snipaste_2020-07-06_09-55-35.png",
            "logicDel":"0",
            "latitude":39.9,
            "colCode":"GJXQ",
            "locationAdvantage":"中国位于亚洲东部,太平洋西岸。北起漠河附近的黑龙江江心,南到南沙群岛的曾母暗沙。西起帕米尔高原,东至黑龙江、乌苏里江汇合处。陆地面积960万平方千米,陆上边界2万多千米。",
            "oid":"rFWPfCH3Qa6MM8iv_EaiPA",
            "pubDate":1604989332075,
            "pubUid":"E7N3Wk9OR1SdmcAia4e2PQQ",
            "population":"据第六次全国人口普查结果,全国总人口为1370536875人。其中:普查登记的大陆31个省、自治区、直辖市和现役军人的人口共1339724852人。香港特别行政区人口为7097600人。澳门特别行政区人口为552300人。台湾地区人口为23162123人。(总体概况-人口)",
            "capitalName":"北京",
            "naturalResources":"中国幅员广大,地质条件多样,矿产资源丰富,矿产171种。已探明储量的有157种。其中钨、锑、稀土、钼、钒和钛等的探明储量居世界首位。煤、铁、铅锌、铜、银、汞、锡、镍、磷灰石、石棉等的储量均居世界前列。(总体概况-自然资源)",
            "tradeDevelop":"<p>中国是世界第二大经济体、世界第一大工业国和世界第一大农业国。2019年11月22日,国家统计局对2018年GDP初步核算数进行了修订。主要结果为:2018年GDP为919281亿元,比初步核算数增加18972亿元,增幅为2.1%。(经贸发展)</p><p><br/></p>",
            "clickRate":399,
            "countryCode":"China",
            "infrastructure":"中国属于第三世界国家,奉行独立自主的和平外交政策,从本国人民和世界人民的长远利益和根本利益出发,把反对霸权主义、维护世界和平、发展各国友好合作和促进共同经济繁荣,作为自己对外工作的根本目标。在处理国与国关系时,中国一贯主张互不干涉内政,以和平共处五项原则为指导,而不以社会制度、意识形态和价值观念的异同为标准,是联合国安全理事会常任理事国和许多国际性组织成员国。(总体概况-基础设施)",
            "bilateralRelations":"",
            "countryName":"中国",
            "colId":"qWdTyD-cSwC32fsWAbPxtQ",
            "continentName":"亚洲",
            "continentCode":"Asia",
            "createDate":1593532800000,
            "longitude":116.4,
            "status":"YFB"
        }
    ]

绘制全球地图的json文件如下:

https://www.makeapie.com/dep/echarts/map/js/world.js

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
实现这个效果,您可以按照以下步骤进行操作: 1. 创建一个四棱锥的模型,并将其导入到场景中。 2. 为每个面创建一个不同的材质,并将其分配给四棱锥的各个面。 3. 对于每个面,使用顶点着色的方法将颜色渐变效果应用到每个顶点。这可以通过在每个顶点处指定不同颜色值来实现。 4. 保存您的场景并查看效果。 下面是一个示例代码片段,可以帮助您实现此效果: ```javascript // 创建四棱锥的模型 var geometry = new THREE.ConeGeometry( 5, 10, 4 ); // 创建四个不同的材质 var material1 = new THREE.MeshBasicMaterial( { color: 0xff0000 } ); var material2 = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); var material3 = new THREE.MeshBasicMaterial( { color: 0x0000ff } ); var material4 = new THREE.MeshBasicMaterial( { color: 0xffff00 } ); // 将材质分配给四棱锥的各个面 var materials = [ material1, material2, material3, material4 ]; var mesh = new THREE.Mesh( geometry, materials ); // 对于每个面,使用顶点着色的方法将颜色渐变效果应用到每个顶点 for ( var i = 0; i < mesh.geometry.vertices.length; i ++ ) { var vertex = mesh.geometry.vertices[ i ]; var color = new THREE.Color( 0xffffff ); color.setRGB( vertex.x / 10 + 0.5, vertex.y / 10 + 0.5, vertex.z / 10 + 0.5 ); mesh.geometry.colors[ i ] = color; } // 启用顶点颜色 mesh.geometry.colorsNeedUpdate = true; // 将四棱锥添加到场景中 scene.add( mesh ); ``` 请注意,此示例代码仅用于说明目的,您可能需要进行适当的修改才能使其适用于您的场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐小亭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值