echarts 5.4 版本 map 地图下钻,显示南沙群岛缩略图,海南三沙市编辑隐藏

需求:渲染中国地图,支持下钻,同时南沙群岛显示在地图右下脚,三沙市边界隐藏

geoJson 数据可从 阿里云-dataV-下载
如果要展示 南海诸岛需要将地图类型设置为china, 将海南省中的三沙市坐标删除

在这里插入图片描述
在这里插入图片描述


<template>
<div ref="echartInstance"></div>
</template>
<script>
import * as echarts from 'echarts'
import { registerMap } from 'echarts'
import geoJson from './geoJson.json'

const CITY_LEVEL = {
  country: 'country', // 全国
  province: 'province',
  city: 'city', // 市
  district: 'district' // 县一级
}


export default {
  name: 'chinaMap',
  data() {
	return {
		curLevel: {
			level: CITY_LEVEL.country, // 默认国家
			adcode: '100000'
		},
		levelStack: [] // 下钻的栈
	}
	},
  methods: {
	init(){
		// 此处将南沙群岛的边界过滤掉,或者也可以直接在geoJson中删除
		geoJson.features = geoJson.features.filter(item => item.properties.adcode !== '100000_JD')
		const ecahrtInstance = echarts.init(this.$refs.echartInstance)
		// geoJson 文件可直接使用从阿里云下载文件
		registerMap(‘china’, geoJson)
		const option = {
			  geo: {
			  	map: 'china'
			  },
			  series: [
				{
				 type: 'map',
				 map: 'china'
				}
			]
		}

		ecahrtInstance.setOption(option , true)
		ecahrtInstance.on('click', (params) => {
			// 可以从数据中拿到当前需要展示的省市区adcode 获取对应的geoJson 文件
			const {level, adcode} = this.curLevel
			this.levelStack.push({level, adcode})
			fetch(`/api/${params.adcode}.json`).then(res => {
				// 此处重新渲染echats 操作	
			})
			})
		}	
	}
}
</script>

最终效果:

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue 3.2和Echarts 5.4都是非常流行的前端开发工具,下面我会分别给你介绍一下它们的组件化特性。 Vue 3.2是Vue.js框架的一个版本,它引入了一些新的特性和改进。在Vue 3.2中,组件化是一个非常重要的概念。Vue组件化允许开发者将页面拆分成独立的、可复用的组件,每个组件都有自己的模板、样式和逻辑。这种组件的方式使得开发更加模块化、可维护性高,并且可以提高代码的复用性。 在Vue 3.2中,可以使用`defineComponent`函数来定义一个组件。组件可以包含模板、样式和逻辑,并且可以通过props来接收父组件传递的数据。你还可以使用`emit`函数来触发自定义事件,以便与父组件进行通信。另外,Vue 3.2还引入了`teleport`组件,可以方便地将组件渲染到DOM树的其他位置。 而Echarts 5.4是一个强大的数据可视化库,它提供了丰富的图表类型和交互功能。在Echarts 5.4中,也支持组件化的方式来使用图表。你可以将Echarts图表封装成一个独立的组件,然后在需要的地方引用这个组件。 在Echarts 5.4中,你可以使用`echarts`对象来创建和配置图表。你可以将图表的配置项作为props传递给Echarts组件,并在组件内部使用`echarts.init`方法来初始化图表。你还可以通过监听事件来实现与图表的交互,比如点击、鼠标移动等。 总结一下,Vue 3.2和Echarts 5.4都支持组件化的开发方式。Vue 3.2可以帮助你将页面拆分成独立的、可复用的组件,而Echarts 5.4可以帮助你将图表封装成独立的组件。这样的组件化开发方式可以提高代码的可维护性和复用性,同时也方便了开发和维护大型应用程序。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值