| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 
 | <template><div class='h-full flex justify-center items-center'>
 <div id='mapDom' class='h-full w-full'>
 
 </div>
 </div>
 </template>
 
 <script setup>
 import { onMounted } from 'vue'
 import * as echarts from 'echarts'
 import '../assets/china'
 import { getCityPositionByName } from '@/assets/cityPostion'
 
 // 模拟10条数据
 let mockData = [
 { name: '北京', value: 500 },
 { name: '天津', value: 200 },
 { name: '河南', value: 300 },
 { name: '广西', value: 300 },
 { name: '广东', value: 300 },
 { name: '河北', value: 300 },
 ]
 
 onMounted(() => {
 let data = mockData.map(i => {
 let cityPosition = getCityPositionByName(i.name).value
 return {
 name: i.name,
 value: cityPosition.concat(i.value),
 }
 })
 
 let initMap = echarts.init(document.querySelector('#mapDom'))
 initMap.setOption({
 backgroundColor: 'transparent', // 设置背景色透明
 // 必须设置
 tooltip: {
 show: false,
 },
 // 地图阴影配置
 geo: {
 map: 'china',
 // 这里必须定义,不然后面series里面不生效
 tooltip: {
 show: false,
 },
 label: {
 show: false,
 },
 zoom: 1.03,
 silent: true, // 不响应鼠标时间
 show: true,
 roam: false, // 地图缩放和平移
 aspectScale: 0.75, // scale 地图的长宽比
 itemStyle: {
 borderColor: '#0FA3F0',
 borderWidth: 1,
 areaColor: '#070f71',
 shadowColor: 'rgba(1,34,73,0.48)',
 shadowBlur: 10,
 shadowOffsetX: -10,
 shadowOffsetY: 10,
 },
 select: {
 disabled: true,
 },
 emphasis: {
 disabled: true,
 areaColor: '#00F1FF',
 },
 // 地图区域的多边形 图形样式 阴影效果
 // z值小的图形会被z值大的图形覆盖
 top: '10%',
 left: 'center',
 // 去除南海诸岛阴影 series map里面没有此属性
 regions: [{
 name: '南海诸岛',
 selected: false,
 emphasis: {
 disabled: true,
 },
 itemStyle: {
 areaColor: '#00000000',
 borderColor: '#00000000',
 },
 }],
 z: 1,
 },
 series: [
 // 地图配置
 {
 type: 'map',
 map: 'china',
 zoom: 1,
 tooltip: {
 show: false,
 },
 label: {
 show: true, // 显示省份名称
 color: '#ffffff',
 align: 'center',
 },
 top: '10%',
 left: 'center',
 aspectScale: 0.75,
 roam: false, // 地图缩放和平移
 itemStyle: {
 borderColor: '#3ad6ff', // 省分界线颜色  阴影效果的
 borderWidth: 1,
 areaColor: '#17348b',
 opacity: 1,
 },
 // 去除选中状态
 select: {
 disabled: true,
 },
 // 控制鼠标悬浮上去的效果
 emphasis: { // 聚焦后颜色
 disabled: false, // 开启高亮
 label: {
 align: 'center',
 color: '#ffffff',
 },
 itemStyle: {
 color: '#ffffff',
 areaColor: '#0075f4',// 阴影效果 鼠标移动上去的颜色
 },
 },
 z: 2,
 data: data,
 },
 {
 type: 'scatter',
 coordinateSystem: 'geo',
 symbol: 'pin',
 symbolSize: [50, 50],
 label: {
 show: true,
 color: '#fff',
 formatter(value) {
 return value.data.value[2]
 },
 },
 itemStyle: {
 color: '#e30707', //标志颜色
 },
 z: 2,
 data: data,
 },
 ],
 })
 })
 </script>
 
 |