echart 中国地图并标记城市

<template>
	<div class="chinaMap">
		<div id="china_map"></div>
	</div>
</template>
<script>
	const echarts = require("echarts");
	import 'echarts/map/js/china.js'
	export default {
		data() {
			return {};
		},
		mounted() {
			this.drawPie();
		},
		methods: {
			drawPie() {
				// 初始化echarts实例
				let chinaMap = echarts.init(
					document.getElementById('china_map')
				);
				// 进行相关配置
				var geoCoordMap = { //自定义城市坐标
					"郑州": [113.62, 34.75],
					"西安": [108.95, 34.27],
					"青岛": [120.33, 36.07],
					"宁波": [121.56, 29.86],
					"芜湖": [118.38, 31.33]
				};
				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.concat(data[i].value)
							});
						}
					}
					return res;
				};

				var chartOption = {
					// geo配置详解: https://echarts.baidu.com/option.html#geo
					geo: { // 地理坐标系组件用于地图的绘制
						map: 'china', // 表示中国地图
						// roam: true, // 是否开启鼠标缩放和平移漫游
						zoom: 1.2, // 当前视角的缩放比例(地图的放大比例)
						label: {
							show: false
						},
						regions: [{ //隐藏南海区域
							name: '南海诸岛',
							value: 0,
							itemStyle: {
								normal: {
									opacity: 0,
									label: {
										show: false
									}
								}
							}
						}],
						itemStyle: {
							normal: {
								areaColor: '#131727',
								borderColor: '#4c505c'
							},
							emphasis: {
								borderWidth: 0,
								borderColor: '#3082ff',
								areaColor: "#3082ff",
								shadowBlur: 20,
								shadowColor: 'rgba(145, 194, 215, 0.5)'
							}
						}
					},
					series: [
						{
							name: '计划单列市',
							type: 'effectScatter', //影响散点
							coordinateSystem: 'geo',
							symbolSize: 12,
							showEffectOn: 'render',
							rippleEffect: {
								brushType: 'stroke'
							},
							hoverAnimation: true,
							label: {
								normal: {
									color: '#3cfbf0',
									formatter: '{b}',
									position: 'right',
									show: false
								},
								emphasis: {
									show: true
								}
							},
							itemStyle: {
								normal: {
									color: '#3cfbf0',
									shadowBlur: 10,
									shadowColor: '#333'
								},
							},
							data: convertData([{
									name: "郑州"
								},
								{
									name: "西安"
								},
								{
									name: "青岛"
								},
								{
									name: "宁波"
								},
								{
									name: "芜湖"
								},
							]),
						}
					]
				}
				// 使用刚指定的配置项和数据显示地图数据
				chinaMap.setOption(chartOption);
				// -----------------------------------------------------------------
				// 响应式变化
				window.addEventListener("resize", () => chinaMap.resize(), false);
			}
		},
		destroyed() {
			window.onresize = null;
		}
	}
</script>
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜鸟也能逆袭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值