【ECharts】保姆级从空白项目到Echarts地图

news2025/7/27 12:55:02

前提

请先创建好一个空白的vue项目,准备好一个用于写Echarts地图的空白vue文件
准备好一个空白的vue页面后,只需要跟着我一步一步做 就可以达到我最后展示的效果!!!

资源下载

ECharts

npm install echarts

地图 json 文件

离线地图下载,下载后复制 json 文件地址链接后打开新标签页访问,再 ctrl + s 保存,重命名为 china-map.json 文件
在这里插入图片描述
在这里插入图片描述

基础地图

vue文件的完整代码如下所示。
import zhongguo from "@/assets/mapJson/china-map.json" 这里的 china-map.json 就是刚刚下载的离线地图 json 文件,地址要换成你所放的目录地址。

<template>
  <div class="content">
    <!-- 放地图的div必须设置宽度和高度 -->
    <div ref="charts" style="width: 1000px; height: 800px"></div>
  </div>
</template>


<script>
import * as echarts from "echarts";
import zhongguo from "@/assets/mapJson/china-map.json"
export default {
  created () {
    this.$nextTick(() => {
      this.initCharts();
    })
  },
  methods: {
    initCharts () {
      const charts = echarts.init(this.$refs["charts"]);
      const option = {
        // 背景颜色
        backgroundColor: "#062e74",
        // 提示浮窗样式
        tooltip: {
          show: true, // 控制提示框是否显示
          trigger: "item", // 指定何时触发提示框的显示
          alwaysShowContent: false, //控制提示框是否总是显示内容,false 表示提示框只在特定触发条件下显示
          backgroundColor: "#074e7b",
          borderColor: "#0a92c9",
          hideDelay: 100, // 鼠标移开后提示框消失的延迟时间(单位:毫秒)
          triggerOn: "mousemove", //指定触发提示框显示的方式(click: 当鼠标点击时触发提示框的显示)
          enterable: true, //控制是否可以通过鼠标进入提示框内部,允许与提示框内部的内容进行交互
          textStyle: {
            color: "#DADADA",
            fontSize: "12",
            width: 20,
            height: 30,
            overflow: "break",
          },
          showDelay: 100 //提示框显示的延迟时间,即鼠标悬停后经过多少时间才会显示提示框
        },
        // 地图配置
        geo: {
          map: "china",
          label: {
            // 通常状态下的样式
            normal: {
              show: true,
              textStyle: {
                color: "#fff",
              },
            },
            // 鼠标放上去的样式
            emphasis: {
              textStyle: {
                color: "#fff",
              },
            },
          },
          // 地图区域的样式设置
          itemStyle: {
            normal: {
              borderColor: "#47bdff",
              borderWidth: 1,
              areaColor: {
                type: "radial",
                x: 0.5,
                y: 0.5,
                r: 0.8,
                colorStops: [
                  {
                    offset: 0,
                    color: "rgba(147, 235, 248, 0)", // 0% 处的颜色
                  },
                  {
                    offset: 1,
                    color: "rgba(71, 189, 255, 0.1)", // 100% 处的颜色
                  },
                ],
                globalCoord: false, // 缺省为 false
              },
              shadowColor: "rgba(128, 217, 248, 1)",
              shadowOffsetX: -2,
              shadowOffsetY: 2,
              shadowBlur: 10,
            },
            // 鼠标放上去高亮的样式
            emphasis: {
              borderColor: "#fff",
              borderWidth: 5,
              areaColor: {
                type: "radial",
                x: 0.5,
                y: 0.5,
                r: 0.8,
                colorStops: [
                  {
                    offset: 0,
                    color: "rgba(147, 235, 248, 0)", // 0% 处的颜色
                  },
                  {
                    offset: 1,
                    color: "rgba(71, 189, 255, 0.1)", // 100% 处的颜色
                  },
                ],
                globalCoord: false, // 缺省为 false
              },
            },
          },
        },
      };
      // 地图注册,第一个参数的名字必须和option.geo.map一致
      echarts.registerMap("china", zhongguo)

      charts.setOption(option);
    },
  },
};
</script>

如果把上述内容粘贴进去,就可以看到如下效果。样式你可以自己进行调整。
在这里插入图片描述

标点

option 里添加 series 属性。这里给了两种样式

series: [
  // 样式一
  // {
  //   type: "scatter",
  //   coordinateSystem: "geo",
  //   symbol: "pin",
  //   legendHoverLink: true,
  //   symbolSize: [60, 60],
  //   // 这里渲染标志里的内容以及样式
  //   label: {
  //     show: true,
  //     formatter (value) {
  //       return value.data.value[2];
  //     },
  //     color: "#fff",
  //   },
  //   // 标志的样式
  //   itemStyle: {
  //     normal: {
  //       color: "rgba(255,0,0,.7)",
  //       shadowBlur: 2,
  //       shadowColor: "D8BC37",
  //     },
  //   },
  //   // 数据格式,其中name,value是必要的,value的前两个值是数据点的经纬度,其他的数据格式可以自定义
  //   // 至于如何展示,完全是靠上面的formatter来自己定义的
  //   data: [
  //     { name: "西藏", value: [91.23, 29.5, 2333] },
  //     { name: "黑龙江", value: [128.03, 47.01, 1007] },
  //   ],
  //   showEffectOn: "render",
  //   rippleEffect: {
  //     brushType: "stroke",
  //   },
  //   hoverAnimation: true,
  //   zlevel: 1,
  // },
  // 样式二
  {
    type: "effectScatter",
    coordinateSystem: "geo",
    effectType: "ripple",
    showEffectOn: "render",
    rippleEffect: {
      period: 10,
      scale: 10,
      brushType: "fill",
    },
    // 这里渲染标志里的内容以及样式
    label: {
      show: true,
      formatter (value) {
        return value.data.value[2];
      },
      color: "#fff",
    },
    hoverAnimation: true,
    itemStyle: {
      normal: {
        color: "rgba(0, 214, 232, 0.5)",
        shadowBlur: 10,
        shadowColor: "#333",
      },
    },
    zlevel: 1,
    data: [
      { name: "西藏", value: [91.23, 29.5, 1982] },
      { name: "黑龙江", value: [128.03, 47.01, 3421] },
    ],
  },
],

在这里插入图片描述

在这里插入图片描述

类似的,还需要什么花里花哨的效果根据属性去配置就好啦,网上有很多现成的效果代码

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

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

相关文章

android查漏补缺(8)Binder framework架构和调用方法

1.Binder简介 Binder是android系统中实现进程间通信的主要组件&#xff0c;包括各种AMS,PMS,SMS等服务和APK的通信都是通过binder实现。但是调用过PMS的同学肯定会有疑问&#xff0c;既然是进程通信&#xff0c;怎么没有消息的发送和接收&#xff0c;为什么调用不同进程的服务的…

Git工作原理和常见问题处理方案

博客定位Git工作区域工作区域划分暂存区设计目的 Git基本操作核心操作初始化和配置指令 HEAD指针Git版本回滚指令介绍reset模式reset hard使用场景reset soft使用场景reset mixed使用场景reset使用注意事项checkout使用场景 Git分支管理什么是分支分支应用场景分支相关指令被合…

OS 死锁

资源问题 引起死锁的主要是需要采用互斥访问方法的、不可被抢占的资源 可重用资源和可消耗资源 可重用资源 定义&#xff1a;一种可供用户重复使用多次的资源 性质&#xff1a; 每个可重用资源中的单元&#xff0c;只能分配给一个进程使用&#xff0c;不允许多个进程共享…

NVME CMB原理和常规使用方案详解

什么是CMB 在NVMe Express 1.2 Spec中开始支持一个特性&#xff0c;那就是CMB&#xff08;Controller Memory Buffer&#xff09;&#xff0c;是指SSD控制器内部的读写存储缓冲区&#xff0c;与HMB&#xff08;Host Memory Buffer&#xff09;的不同处在于所使用的内存地址位于…

ffplay是做什么的

目录 ffplay是什么 一、ffplay的基本使用 二、ffplay播放控制 三、常用参数 ffplay是什么 ffplay 是FFmpeg提供的一个极为简单的音视频媒体播放器&#xff08;由ffmpeg库和SDL库开发&#xff09;&#xff0c;可以用于音视频播放、可视化分析 &#xff0c;提供音视频显示和播…

微信小程序面试题之理论篇

本文内容&#xff0c;来源于极客学院的分享&#xff0c;这里只做引用。 说说你对微信小程序的理解?优缺点? 背景 小程序与H5 优缺点 优点&#xff1a;缺点&#xff1a; 说说微信小程序的生命周期函数有哪些&#xff1f; 应用的生命周期页面的生命期组件的生命周期执行过程 应…

从零开始的目标检测和关键点检测(二):训练一个Glue的RTMDet模型

从零开始的目标检测和关键点检测&#xff08;二&#xff09;&#xff1a;训练一个Glue的RTMDet模型 一、config文件解读二、开始训练三、数据集分析四、ncnn部署 从零开始的目标检测和关键点检测&#xff08;一&#xff09;&#xff1a;用labelme标注数据集 从零开始的目标检测…

Jmeter 汉化中文语言

找到 bin -> jmeter.propertise 修改参数&#xff1a;languageen --> languagazh_CN OK&#xff01;

上位机底部栏 UI如何设置

上位机如果像设置个多页面切换&#xff1a; 位置&#xff1a; 代码如下&#xff1a; "tabBar": {"color": "black","selectedColor": "#d43c33","borderStyle":"black","backgroundColor": …

EVM6678L 开发教程: IBL-TFTP 引导 elf 文件

目录 EVM6678L 开发教程: IBL-TFTP 引导 elf 文件安装 Tftpd64测试工程测试说明 EVM6678L 开发教程: IBL-TFTP 引导 elf 文件 参考: "C:\ti\mcsdk_2_01_02_06\tools\boot_loader\examples\i2c\tftp\docs\README.txt" 此教程介绍如何在 EVM6678L 开发板上实现 IBL-…

【面试经典150 | 链表】旋转链表

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;遍历 其他语言python3 写在最后 Tag 【单向链表】 题目来源 61. 旋转链表 题目解读 旋转链表&#xff0c;将链表的每个节点向右移动 k 个位置。 解题思路 方法一&#xff1a;遍历 本题题目意思清晰&#xff0c;实现…

【Linux】jdk Tomcat MySql的安装及Linux后端接口部署

一&#xff0c;jdk安装 1.1 上传安装包到服务器 打开MobaXterm通过Linux地址连接到Linux并登入Linux&#xff0c;再将主机中的配置文件复制到MobaXterm 使用命令查看&#xff1a;ll 1.2 解压对应的安装包 解压jdk 解压命令&#xff1a;tar -xvf jdk 加键盘中Tab键即可…

企业级JAVA、数据库等编程规范之命名风格 —— 超详细准确无误

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信你对这两篇博客也感兴趣o (ˉ▽ˉ&#xff1b;) &#x1f4dc; 表白墙/留言墙 —— 初级SpringBoot项目&#xff0c;练手项目前后端开发(带完整源码) 全方位全步骤手把手教学 &#x1f4dc; 用户登录前后端…

作为网工有必要了解一下什么是SRv6?

什么是SRv6&#xff1f; 【微|信|公|众|号&#xff1a;厦门微思网络】 【微思网络http://www.xmws.cn&#xff0c;成立于2002年&#xff0c;专业培训21年&#xff0c;思科、华为、红帽、ORACLE、VMware等厂商认证及考试&#xff0c;以及其他认证PMP、CISP、ITIL等】 SRv6&…

MFC简单字符串压缩程序

一个mfc简单字符串压缩程序&#xff1b;按以下情况进行压缩&#xff1b; 1 仅压缩连续重复出现的字符。比如”abcbc”无连续重复字符&#xff0c;压缩后还是”abcbc”。 2 压缩的格式为”字符重复的次数字符”。例如&#xff0c;”xxxyyyyyyz”压缩后就成为”3x6yz”。 void …

Centos7环境下cmake3.25的编译与安装

文章目录 0 视频传送门1 卸载当前版本2 下载cmake3.25.0并且解压缩3 使用root用户进入解压缩的目录4 开始执行命令5 创建软连接6 检查版本 0 视频传送门 https://www.bilibili.com/video/BV1Gu4y1J7Ev/?vd_source3353f83539e46042d8cf76efb177a8e4 07-Centos7编译安装cmake3.…

接口请求的六种常见方式详解(get、post、head等)

一&#xff0e;接口请求的六种常见方式&#xff1a; 1、Get 向特定资源发出请求&#xff08;请求指定页面信息&#xff0c;并返回实体主体&#xff09; 2、Post 向指定资源提交数据进行处理请求&#xff08;提交表单、上传文件&#xff09;&#xff0c;又可能导致新的资源的建…

Leetcode—485.最大连续1的个数【中等】明天修改

2023每日刷题&#xff08;十五&#xff09; Leetcode—2.两数相加 迭代法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l…

再现“换桥奇迹”|人大金仓助力中国移动完成营销系统国产化升级

堪称传统基建奇迹的“三元桥43小时换新桥”工程的相关报道还历历在目&#xff0c;而中国移动也经历着类似的考验&#xff0c;需要在2天内完成某在线营销系统整体升级。 作为中国移动的重要数据库产品与服务提供商&#xff0c;留给人大金仓的时间只有每天夜间的4小时&#xff0…