
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div id="main" style="height: 400px"></div>
<script src="../libs/echarts-5.3.3.js"></script>
<script src="./geojson/china_geojson.js"></script>
<script>
window.onload = function () {
let mapName = '中国';
echarts.registerMap(mapName, { geoJSON: china_geojson });
let myChart = echarts.init(document.getElementById('main'));
var data = [
{ name: '北京', value: 199 },
{ name: '天津', value: 42 },
{ name: '河北', value: 102 },
{ name: '山西', value: 81 },
{ name: '内蒙古', value: 47 },
{ name: '辽宁', value: 67 },
{ name: '吉林', value: 82 },
{ name: '黑龙江', value: 123 },
{ name: '上海', value: 154 },
{ name: '江苏', value: 102 },
{ name: '浙江', value: 114 },
{ name: '安徽', value: 109 },
{ name: '福建', value: 116 },
{ name: '江西', value: 91 },
{ name: '山东', value: 119 },
{ name: '河南', value: 137 },
{ name: '湖北', value: 116 },
{ name: '湖南', value: 114 },
{ name: '重庆', value: 101 },
{ name: '四川', value: 125 },
{ name: '贵州', value: 62 },
{ name: '云南', value: 83 },
{ name: '西藏', value: 9 },
{ name: '陕西', value: 80 },
{ name: '甘肃', value: 56 },
{ name: '青海', value: 10 },
{ name: '宁夏', value: 18 },
{ name: '新疆', value: 120 },
{ name: '广东', value: 193 },
{ name: '广西', value: 59 },
{ name: '海南', value: 14 },
];
var geoCoordMap = {};
myChart.showLoading();
var mapFeatures = echarts.getMap(mapName).geoJson.features;
mapFeatures.forEach(function (v) {
var name = v.properties.name;
geoCoordMap[name] = v.properties.cp;
});
myChart.hideLoading();
console.log('data=>', data);
console.log('geoCoordMap=>', geoCoordMap);
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, data[i].value],
});
}
}
console.log('res=>', res);
return res;
};
var option = {
tooltip: {},
geo: {
map: '中国',
roam: false,
label: { show: false },
aspectScale: 0.75,
itemStyle: {
areaColor: '#023677',
borderColor: '#1180c7',
},
emphasis: {
itemStyle: { areaColor: '#4499d0' },
label: { color: 'white' },
},
},
series: [
{
name: '中国地图',
type: 'map',
map: '中国',
data,
itemStyle: {
areaColor: '#023677',
borderColor: '#1180c7',
},
emphasis: {
itemStyle: { areaColor: '#4499d0' },
label: { color: 'white' },
},
select: {
label: { color: 'white' },
itemStyle: { areaColor: '#4499d0' },
},
},
{
name: '散点图充电桩',
type: 'effectScatter',
geoIndex: 0,
coordinateSystem: 'geo',
data: convertData(data),
symbolSize: function (val) {
return val[2] / 10;
},
itemStyle: {
color: 'yellow',
shadowBlur: 10,
shadowColor: 'yellow',
},
tooltip: {
show: true,
trigger: 'item',
formatter: function (params) {
console.log(params);
var data = params.data;
return `${params.seriesName} <div style="margin:5px 0px;"/> ${data.name} ${data.value[2]}`;
},
},
},
],
};
myChart.setOption(option);
};
</script>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步