Vue3使用Echarts实现自定义地图(使用阿里云数据可视化平台)

news2024/12/28 4:17:21

Vue3使用Echarts实现自定义地图

1.获取地图JSON文件

推荐使用 阿里云数据可视化平台

选择你想要使用地图区域并下载JSON文件
在这里插入图片描述

2.把地图JSON文件引入Vue3项目中

放在src/assets中
在这里插入图片描述

引入你想要使用地图的组件中

在这里插入图片描述

3.使用Echarts创建地图

准备地图容器

<template>
<div id="user_region">
</div>
</template>

Echarts代码如下

//创建用户地域分布
const createRegion = () => {
  let mapChartInstance = null;
  // 获取地图容器  
  let mapChart = document.getElementById("user_region");
  mapChartInstance = markRaw(
    echarts.init(mapChart, undefined, { devicePixelRatio: 2, renderer: "svg" })
  );
  // 注册地图
  echarts.registerMap("China", China); 
  mapChartInstance.setOption({
    title: {
      text: "用户地域分布",
      left: 10,
      top: 10,
      textStyle: {
        color: "#000",
        fontSize: 16,
      },
    },
    visualMap: {
      show: true,
      min: 0,
      max: 10000,
      type: "piecewise",
      right: 50,
      bottom: 20,
      inRange: {
        //控制颜色深浅
        opacity: 0.35, 
      },
      pieces: [
        // 自定义每一段的范围,以及每一段的文字
        { gte: 50, color: "#17459e" }, 
        { gte: 20, lte: 50, color: "#3886e1" },
        { gte: 10, lte: 20, color: "#73b3f3" },
        { gte: 1, lte: 10, color: "#c0ddf9" },
        { lte: 1, color: "#ebedf0" },
      ],
    },
    series: [
      {
        name: "中华人民共和国",
        type: "map",
        map: 'China',
        geoIndex: 0,
        //假数据
        data: [
          {
            name: "江苏省",
            value: 100,
          },
          {
            name: "北京市",
            value: 86,
          },
          {
            name: "上海市",
            value: 68,
          },
          {
            name: "重庆市",
            value: 123,
          },
          {
            name: "河北省",
            value: 34,
          },
          {
            name: "河南省",
            value: 32,
          },
          {
            name: "云南省",
            value: 160,
          },
          {
            name: "辽宁省",
            value: 43,
          },
          {
            name: "黑龙江省",
            value: 181,
          },
          {
            name: "湖南省",
            value: 24,
          },
          {
            name: "安徽省",
            value: 33,
          },
          {
            name: "山东省",
            value: 54,
          },
          {
            name: "新疆省",
            value: 118,
          },
          {
            name: "浙江省",
            value: 44,
          },
          {
            name: "江西省",
            value: 220,
          },
          {
            name: "湖北省",
            value: 21,
          },
          {
            name: "广西省",
            value: 30,
          },
          {
            name: "甘肃省",
            value: 12,
          },
          {
            name: "山西省",
            value: 32,
          },
          {
            name: "内蒙古省",
            value: 35,
          },
          {
            name: "陕西省",
            value: 25,
          },
          {
            name: "吉林省",
            value: 45,
          },
          {
            name: "福建省",
            value: 28,
          },
          {
            name: "贵州省",
            value: 18,
          },
          {
            name: "广东省",
            value: 37,
          },
          {
            name: "青海省",
            value: 62,
          },
          {
            name: "西藏省",
            value: 43,
          },
          {
            name: "四川省",
            value: 33,
          },
          {
            name: "宁夏省",
            value: 8,
          },
          {
            name: "海南省",
            value: 19,
          },
          {
            name: "台湾省",
            value: 190,
          },
          {
            name: "香港省",
            value: 11,
          },
          {
            name: "澳门省",
            value: 10,
          }, {
            name: "内蒙古自治区",
            value: 200
          }, {
            name: "天津市",
            value: 230,
          }, {
            name: "广西壮族自治区",
            value: 30,
          }, {
            name: "新疆维吾尔自治区",
            value: 100,
          }, {
            name: "宁夏回族自治区",
            value: 500,
          }, {
            name: "西藏自治区",
            value: 70
          }
        ],
        label: {
          show: true
        }
      },
    ],
    tooltip: {
      // 自定义弹窗
      // 鼠标引入省份,不断触发.params 对象.当前省份的信息.
      formatter: function (params) {
        //console.log(params);
        return params.seriesName + "<br>" + params.name + ":" + params.value + "人";
      },
    },
    geo: {
      // 使用地图
      map: "China", 
      label: {
        //显示地域标签  
        show: false, 
        //标签字体颜色  
        color: "#ffffff", 
      },
      layoutCenter: ["50%", "50%"],
      //地图尺寸
      layoutSize: "120%",
      // 缩放  
      aspectScale: 1,
      itemStyle: {
        //区域边框宽度  
        borderWidth: 0.5,
        //区域边框颜色  
        borderColor: "#d1d1d1", 
        //区域颜色  
        areaColor: "#eeeeee",
      },
      emphasis: {
        // 鼠标悬浮效果
        itemStyle: {
          borderWidth: 0.5,
          borderColor: "#33ddff",
          areaColor: "#26627f",
        },
        label: {
          //对应的鼠标悬浮效果
          show: true,
          color: "#ffffff",
        },
      },
    },
  });
};

然后把这个初始化地图的Echarts函数放onMounted周期中

在这里插入图片描述
效果图如下
在这里插入图片描述

注意事项:

  1. 初始化代码需要在onMounted中执行
  2. 地图容器必须有具体高度
  3. series内的属性值必须和定义的地图名称相对应,包括data中的数据,否是不会显现出来你想要的数据的(举个栗子:假如模拟数据:data
    […{ name: “江苏” value : 100 }…] 而地图json文件中 城市名称 则是 江苏省
    这样数据value是不会显示出来的)
  4. 如果想把地图变成响应式的话,需要在watch中监听修改后的数据,获取到最新的数据后,通过echarts中的setOption()方法,把最初的option数据添加进去,再把变了的数据也放进去,这样就可以实现响应式了,地图会随着数据的变化而进行变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/359959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

链路聚合基本概念

聚合组&#xff08;Link Aggregation Group&#xff0c;LAG&#xff09;&#xff1a;若干条链路捆绑在一起所形成的的逻辑链路。每个聚合组唯一对应着一个逻辑接口&#xff0c;这个逻辑接口又被称为链路聚合接口或Eth-Trunk接口。成员接口和成员链路&#xff1a;组成Eth-Trunk接…

win11/10+Azure kinect DK配置 VS2019/2017/2015的方法(简单,亲测可以)

首先下载文件&#xff1a;文件的下载和安装方法参考我的博客(131条消息) WIN11/win10Azure Kinect DK详细驱动配置教程&#xff08;亲测&#xff09;_Vertira的博客-CSDN博客安装好VS2019,创建好控制台c工程。这些都很简单&#xff0c;不细说。配置&#xff1a;首先配置环境变量…

如何快速掌握DDT数据驱动测试?

如何快速掌握DDT数据驱动测试&#xff1f; 目录&#xff1a;导读 前言 实施数据驱动步骤 数据驱动测试环境准备 测试步骤 数据存储 数据存在当前脚本中 json文件读取测试数据进行数据驱动测试 从xml读取数据进行数据驱动测试 总结 写在最后 前言 网盗概念相同的测试…

《Linux运维实战:Centos7.6基于docker-compose一键离线部署rabbitmq3.9.16+haproxy镜像模式高可用负载均衡集群》

一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&#xff0c;而作为基础组件中的重要的一环&#xff0c;我们需要针对不同的客户环境需要多次部署 rabbitmq镜像模式高可用负载均衡集群&#xff0c;作为一个运维工程师&#xff0c;提升…

LeetCode 793. 阶乘函数后 K 个零

f(x) 是 x! 末尾是 0 的数量。回想一下 x! 1 * 2 * 3 * ... * x&#xff0c;且 0! 1 。 例如&#xff0c; f(3) 0 &#xff0c;因为 3! 6 的末尾没有 0 &#xff1b;而 f(11) 2 &#xff0c;因为 11! 39916800 末端有 2 个 0 。 给定 k&#xff0c;找出返回能满足 f(x) …

Django框架之类视图

类视图 思考&#xff1a;一个视图&#xff0c;是否可以处理两种逻辑&#xff1f;比如get和post请求逻辑。 如何在一个视图中处理get和post请求 注册视图处理get和post请求 以函数的方式定义的视图称为函数视图&#xff0c;函数视图便于理解。但是遇到一个视图对应的路径提供…

【Vue/基础知识】Vue基础知识(一)

如果觉得我的分享有一定帮助&#xff0c;欢迎关注我的微信公众号 “码农的科研笔记”&#xff0c;了解更多我的算法和代码学习总结记录。或者点击链接扫码关注 【Vue/基础知识】Vue基础知识&#xff08;一&#xff09; 1、v-show 和 v-if 指令的共同点和不同点&#xff1f; 共…

【建议收藏】2023年最新最全PMP 报考条件和流程在这里!

PMP考试是由美国项目管理协会PMI发起的项目管理专业人士资格认证考试&#xff0c;在中国国内由中国国际人才交流基金会举办考试&#xff0c;考生在报名参加PMP考试前了解下PMP考试报名条件和流程是必须要做的功课&#xff0c;下面我为大家详细介绍2023年PMP考试报名条件和流程&…

音频信号处理笔记(二)

文章目录1.1.3 过零率1.1.4 谱质心和子带带宽1.1.5 短时傅里叶分析法1.1.6 小波变换相关课程&#xff1a; 音频信号处理及深度学习教程傅里叶分析之掐死教程&#xff08;完整版&#xff09;更新于2014.06.06 - 知乎 (zhihu.com)1.1.3 过零率 过零率&#xff1a;是一个信号符号…

[软件工程导论(第六版)]第7章 实现(复习笔记)

文章目录7.1 编码7.2 软件测试基础7.2.1 软件测试的目标7.2.2 软件测试的准则7.2.3 测试方法7.2.4 测试步骤7.2.5 测试阶段的信息流7.3 单元测试&#xff08;模块测试&#xff09;7.4 集成测试7.5 确认测试&#xff08;验收测试&#xff09;7.6 白盒测试技术7.7 黑盒测试技术7.…

微型光纤光谱仪的光路性能指标

标题光路指标波长范围灵敏度分辨率&#xff08;波长&#xff09;波长准确度与波长重复性光路稳定性杂散光与二级衍射效应光路指标 波长范围 对于微型光纤光谱仪来说&#xff0c;波长范围的概念有两个层面&#xff1a; 由灵敏度所限制的范围&#xff08;Useable range&#xf…

python学习之10行代码制作炫酷的词云图(匹配指定图形形状)

文章目录前言一、需要准备什么&#xff1f;二、代码实现&#xff08;示例&#xff09;三、读入数据四、结果展示五、修改词云颜色后的运行结果展示&#xff1a;总结前言 想必大家有一个问题&#xff1a;什么是词云呢&#xff1f; 词云又叫名字云&#xff0c;是对文本数据中出…

java调用elasticSearch api

java操作es有两种方式 通过操作es的9300端口&#xff0c;9300是tcp端口&#xff0c;集群节点之间通信也是通过9300端口&#xff0c;会通过9300和es建立一个长连接&#xff0c;下面的es的依赖可以直接操作 但是随着es的版本的提升spring-data需要封装不同版本的es的jar包&#x…

Windows命令大全

Windows命令大全命令简介运行流程CMD命令—文件管理CMD命令—磁盘管理CMD命令—系统管理CMD命令—进程管理CMD命令—控制台管理CMD命令—其他管理Windows运行工具操作示例命令简介 CMD命令是一种命令提示符&#xff0c;CMD是command的缩写&#xff0c;即命令提示符&#xff08…

QT(57)-QWT+VS2019+QT5.12.4环境配置-x86

1.下载QWT源码。 2.用VS2019-MSVC2019编译生成6个文件。 3.配置6个文件&#xff0c;把6个文件放对应的目录下。 4. 用自带的example检测配置环境。 1.下载QWT源码 Qwt Users Guide: Qwt - Qt Widgets for Technical Applications2.用VS2019-MSVC2019编译生成6个文件. #qw…

测试工程师如何提高自动化测试覆盖率

前言 自动化测试一直是测试人员的核心技能&#xff0c;也是测试的重要手段之一。尤其是在今年所谓的互联网寒冬的行情下&#xff0c;各大企业对测试人员的技术水平要求的很高&#xff0c;而测试人员的技术水平主要集中在三大自动化测试领域&#xff0c;再加测试辅助脚本的编写…

350-401-补充

补充 拖图 Cloud和On-Premise&#xff1b; Cloud&#xff1a; easy to scale the capacity up and down highly agile On-Premises&#xff1a; infrstructure requires large and regular investments highly customizable 云: 易于扩大和缩小容量 非常敏捷 本地: 基础设施…

nodejs基于vue 网上商城购物系统

可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2. 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.1.2技术可行性 6 3.1.3运行可行…

15 个杀手级 你可能从未听说过的 JS 技术

我们都同意&#xff0c;在 Google 或 StackOverflow 上搜索 Javascript 错误修复或答案并不有趣&#x1f3f4;‍☠️。这里有 20 种简短而强大的 JavaScript 技术&#xff0c;它们可以最大限度地提高生产力 ⚡ 并最大限度地减少痛苦 &#x1fa78;。让我们深入研究代码&#x1…

人们最想看到的是:你在坚持什么?

【人们最想看到的是&#xff1a;你在坚持什么】 长远规划才能对抗不确定性 品牌也能够对抗不确定性 想想这么多年东搞搞&#xff0c;西搞搞 最后缺乏正向积累的【厚度】 趣讲大白话&#xff1a;把每滴水尽量接到碗里 人吃的是饭&#xff0c;拉出来的是信息 *********** 人们在频…