vue使用Echarts地图展示并标注坐标点、点击进入省市子区域地图

本文介绍了如何在Vue项目中使用Echarts显示全国地图,并标注坐标点。通过点击地图上的省份,可以进一步展示省市子区域地图。教程涵盖了从安装Echarts依赖到配置HTML、JS和CSS的全过程,同时提供了JSON数据文件的下载链接。
摘要由CSDN通过智能技术生成

1、安装echarts依赖

npm install echarts --save

2、main.js中引入echarts

import echarts from 'echarts';//引入echarts
Vue.prototype.$echarts = echarts;

3、HTML部分

<!-- 地图容器div -->
<div class="overview_mian_mapBox" id="mapChart" ref="mapChart" ></div>   

4、JS部分

  • 引入json文件
<!-- 按需引入省市对应json -->
import china from '../../public/mapJson/china' //引入中国地图json数据
import anhui from '../../public/mapJson/anhui'
import aomen from '../../public/mapJson/aomen'
import beijing from '../../public/mapJson/beijing'
import chongqing from '../../public/mapJson/chongqing'
import fujian from '../../public/mapJson/fujian'
import gansu from '../../public/mapJson/gansu'
....
  • 数据及方法
export default {
    data(){
		return{
			map: {
	            center: {
	                 lng: 112,
	                 lat: 37
	             },
	             zoom: 10,
	             markList: [],
	             clickMarkIndex: '',
			},
			mapOption: {
                    tooltip: {
                        trigger: 'item',
                        backgroundColor: 'rgba(11, 24, 84, 0.8)',
                        borderColor: '#0008ff',
                        borderWidth: 1,
                        padding: 15,
                        textStyle:{
                          textAlign: 'center'
                        },
                        formatter: function (params) {
                            var alarmLevel;
                            if(params.data.value[2] > 4){
                                alarmLevel = '正常'
                            }else{
                                alarmLevel = "故障等级:" + params.data.value[2] + "级"
                            }
                            return "点位名称:" + params.data.name + "<br />" + alarmLevel;
                        }
                    },
                    visualMap: {
                        show: true,
                        type: 'continuous',
                        min: 1,
                        max: 5,
                        top: '5%',
                        left: 'center',
                        text: ['正常', '一级警告'],
                        textStyle: {
                            color: '#fff'
                        },
                        //dimension: 2, //指定用数据的『哪个维度』,映射到视觉元素上
                        inverse: true, //是否反转 visualMap 组件
                        seriesIndex: [0,1], //指定取哪个系列的数据,即哪个系列的 series.data。默认取所有系列。
                        color: ['#6ff22d', '#00fff0', '#dedb00', '#ff9c00', '#fd045f'],
                        calculable: true, //显示拖拽手柄
                        realtime: true, //拖拽时,是否实时更新
                        orient: 'horizontal', //水平放置组件
                        align: 'left', //指定组件中手柄和文字的摆放位置
                        hoverLink: true, //鼠标位置对应的数值 在 图表中对应的图形元素,会高亮
                        range:[1, 5]
                    },
                    roamController: {
                        show: true,
                        x: "right",
                        mapTypeControl: {
                            china: true
                        }
                    },
                    geo: {
                        roam: true,
                        zoom: 1.2,
                        label: {
                            normal: {
                                show: false,
                                color: '#fff'
                            },
                            emphasis: {
                                show: true,
                                color: '#eeeeee'
                
Vue项目中使用ECharts绘制省份地图并标,可以通过以下步骤实现: 1. 安装ECharts和对应的Vue插件(如果使用Vue版本的ECharts): ```bash npm install echarts --save npm install vue-echarts --save ``` 2. 在Vue组件中引入ECharts和vue-echarts: ```javascript import * as echarts from 'echarts'; import { use } from 'vue-echarts'; ``` 3. 注册ECharts实例到Vue组件中: ```javascript export default { components: { 'v-chart': use(echarts) }, data() { return { chartOptions: null, chartDom: null }; }, mounted() { this.initChart(); }, methods: { initChart() { this.chartDom = this.$refs.chartDom; // 假设你有一个ref为chartDom的div容器 const chart = this.$refs.chart = this.$refs.chartDom.echarts; // 初始化图表的一些配置 this.chartOptions = { title: { text: '省份地图示例' }, tooltip: {}, legend: { data:['销量'] }, geo: { map: 'china', // 使用内置的中国地图 roam: true, // 可以缩放和平移视图 label: { emphasis: { show: false } } }, series: [{ name: '销量', type: 'effectScatter', // 这里使用带涟漪效果的散图 coordinateSystem: 'geo', data: [{ name: '北京', value: [116.46, 39.92], symbolSize: function (val) { return val[2] / 10; } }, { name: '上海', value: [121.47, 31.23], symbolSize: function (val) { return val[2] / 10; } }], encode: { x: [10, 11], y: [0, 1] } }] }; chart.setOption(this.chartOptions); } } }; ``` 4. 在模板中添加div容器并指定ref: ```html <template> <div> <v-chart ref="chartDom" style="width: 600px; height:400px;"></v-chart> </div> </template> ``` 5. 根据实际数据动态更新地图上的标,可以使用数据驱动的更新机制。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值