使用 Echarts 插件完成中国旅游地图

news2024/12/23 10:09:35

目录

  • 前言:
  • 什么是 Echarts 插件
  • 具体实现思路
  • 中国旅游地图成品展示
  • 步骤:
  • 完成中国旅游地图代码
  • 总结:

前言:

大家都知道,一般情况下,想要使用前端设置一个 中国旅游地图 需要使用 canvas 画布进行编写,不仅代码多,逻辑处理麻烦,今天交大家使用一个插件,使用它就可以轻松的做出各种图。


什么是 Echarts 插件

echars是一棵树
这个图标是简单还是复杂,取决你在这棵树上绘制的枝干有多少
树就是dom容器,初始化,挂载到dom容器上,把枝干在配置进来
枝干可以在示例中,具体代码里有配置,在文档中查看具体效果


具体实现思路

设置一个标签,标签设置宽高,否则不显示
引入中国地图的数据
初始化echarts实例,并挂载到dom中
注册中国地图,必须在geo或map中
this.$echarts.registerMap(“china”, geoJson);
编写配置项,把配置项添加到实例中(简写)
配置项:
背景色
geo:图层(zoom),长宽比例,样式(itemStyle):地图区域的颜色,阴影,阴影偏移量,特点区域的样式(region):南海诸岛
series:相关数据的各项参数,可以分为好几层,层次显示用图层(zoom)划分,

  1. 基础地图相关的数据参数:显示文字,文字颜色,图层,样式(itemStyle):地图区域的颜色,背景色,边框,高亮效果(鼠标移入时显示样式)

请求数据(把请求到的值:points, linesData)给2,3的data

  1. 配置散点图的各项参数:类型(type):散点图(气泡图),使用地理坐标系,配置何时显示特效(绘制完成后显示特效),标记的大小(默认为10)
    图层:1,data(数据),涟漪特效相关配置:动画周期,缩放比例,波纹的绘制
  2. 配置线性图的各项参数:类型(type):线性图,图层:2,线特效的配置(effect):是否显示特效(show),特效动画的时间,显示方式,特效的大小,
    拖尾的效果,取值范围 0-1,值越大效果越明显,线的样式(透明度,颜色,宽,弯曲度),data(数据)

中国旅游地图成品展示

线条上的箭头可以移动

在这里插入图片描述

在这里插入图片描述


步骤:

    1. 首先下载 Echarts 插件,下载需要的版本即可,我这里使用的是 4.9.0 版本(最新版的一般都有一些 BUG)
cnpm install echarts@4.9.0 --save
    1. 引入 Echarts 插件(在vue中一般都是引入到main.js组件中)
import echarts from 'echarts'

// 挂载到vue原型中就可以全局使用
Vue.prototype.$echarts = echarts
    1. 在js中使用需要进行的步骤:

引入中国地图的地址在 node_modules_echarts@4.9.0@echarts\map\json 文件夹下

1. 先设置一个显示的标签
<div id="main" style="width: 600px;height:400px;"></div>
2. 引入中国地图代码
import geoJson from "echarts/map/json/china";
3. 初始化echatrs实例,并挂载到dom容器中
let myChart = this.$echarts.init(document.getElementById("main"));
4. 注册地图
this.$echarts.registerMap("china", geoJson);
5. 对照着需求,来逐个编写配置项(参考文档)和接收数据
let option = {}
6. 将配置和数据添加到实例中
myChart.setOption(option);

注册的是中国地图,必须包括geo组件或者mep图标类型的时候才可以使用
地图分为:世界地图,中国地图,省份地图,市区地图

下面代码的意思,可以跳转至官方网站进行查看


完成中国旅游地图代码

代码中大部分功能写有注释,部分没有可以在 Echarts 官网进行查看

<template>
  <div class="map-view">
    <div id="main"></div>
  </div>
</template>

<script>
import geoJson from "echarts/map/json/china";
import { travel } from "@/api/api";
export default {
  data() {
    return {};
  },
  mounted() {
    travel().then((res) => {
      if (res.data.status === 200) {
        let { points, linesData } = res.data.data;
        this.draw(points, linesData);
      }
    });
  },
  methods: {
    draw(points, linesData) {
      let myChart = this.$echarts.init(document.getElementById("main"));
      // 注册的是中国地图,必须包括geo组件或者mep图标类型的时候才可以使用
      // 地图:世界地图,中国地图,省份地图,市区地图
      this.$echarts.registerMap("china", geoJson);
      myChart.setOption({
        // 背景色
        backgroundColor: "rgb(121,145,200)",
        // 配置项(组件)
        geo: {
          map: "china",
          // 地图的长宽比例
          aspectScale: 0.75,
          // 图层
          zoom: 1.1,
          // 样式
          itemStyle: {
            // 标准
            normal: {
              // 地图区域的颜色
              areaColor: {
                type: "radial",
                x: 0.5,
                y: 0.5,
                r: 0.8,
                // 颜色的步骤
                colorStops: [
                  {
                    offset: 0,
                    color: "#09132c",
                  },
                  {
                    offset: 1,
                    color: "#274d68",
                  },
                ],
                // 延长作用域
                globalCoord: true,
              },
              // 盒子的阴影
              shadowColor: "rgb(58,115,192)",
              // 偏移
              shadowOffsetX: 10,
              shadowOffsetY: 11,
            },
          },
          region: [
            {
              name: "南海诸岛",
              itemStyle: {
                opacity: 0,
              },
            },
          ],
        },
        series: [
          // 1. 配置基础地图相关的数据参数
          {
            type: "map",
            label: {
              normal: {
                // 显示文字
                show: true,
                textStyle: {
                  color: "#1DE9B6",
                },
              },
              emphasis: {
                textStyle: {
                  color: "rgb(183,185,14)",
                },
              },
            },
            // 图层
            zoom: 1.1,
            map: "china",
            itemStyle: {
              normal: {
                // 背景色
                backgroundColor: "rgb(147,235,248)",
                // 边框
                borderWidth: 1,
                // 区域颜色
                areaColor: {
                  type: "radial",
                  x: 0.5,
                  y: 0.5,
                  // 文档
                  r: 0.8,
                  colorStops: [
                    { offset: 0, color: "rgb(34,54,150)" },
                    { offset: 1, color: "rgb(89,128,142)" },
                  ],
                  // 全局生效
                  globalCoord: true,
                },
              },
              // 高亮效果
              emphasis: {
                areaColor: "rgb(46,229,206)",
                borderWidth: 0.1,
              },
            },
          },
          // 2. 配置散点图的各项参数
          {
            // 散点图(气泡图)
            type: "effectScatter",
            // 使用地理坐标系
            coordinateSystem: "geo",
            // 配置何时显示特效(绘制完成后显示特效)
            showEffectOn: "render",
            // 标记的大小(默认为10)
            symbolSize: 10,
            // 图层
            zlevel: 1,
            // 数据
            data: points,
            // 涟漪特效相关配置
            rippleEffect: {
              // 动画周期
              period: 5,
              // 缩放比例
              scale: 4,
              // 波纹的绘制
              brushType: "fill",
            },
          },
          // 3. 配置线性图的各项参数
          {
            // 线性图
            type: "lines",
            // 图层
            zlevel: 2,
            // 线特效的配置
            effect: {
              // 是否显示特效
              show: true,
              // 特效动画的时间
              period: 4,
              // 显示方式
              symbol: "arrow",
              // 特效的大小
              symbolSize: 7,
              // 拖尾的效果,取值范围 0-1,值越大效果越明显
              trailLength: 0.6,
            },
            lineStyle: {
              normal: {
                color: "#1DE986",
                width: 1,
                opacity: 0.4,
                curveness: 0.7,
              },
            },
            data: linesData,
          },
        ],
      });
    },
  },
};
</script>

<style lang="scss" scoped>
.map-view {
  width: 100%;
  height: 100%;
  #main {
    width: 100%;
    height: 650px;
  }
}
</style>

总结:

以上就是 vue基于 Echarts 插件,实现中国旅游地图功能,不懂得也可以在评论区里问我或私聊我询问,以后会持续发布一些新的功能,敬请关注。
我的其他文章:https://blog.csdn.net/weixin_62897746?type=blog

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

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

相关文章

尿苷二磷酸修饰阿拉伯糖,阿拉伯糖偶联核苷酸,UDP-B-L-阿拉伯糖二钠盐,15839-78-8

产品名称&#xff1a;尿苷二磷酸修饰阿拉伯糖&#xff0c;阿拉伯糖偶联核苷酸 英文名称&#xff1a;UDP-b-L-arabinopyranose disodium salt&#xff0c;UDP-L-Arabinose CAS号&#xff1a;15839-78-8 分子式&#xff1a;C14H22N2O16P2 分子量&#xff1a;536.27600 产地&am…

一种基于交叉选择的柯西反向鲸鱼优化算法QOWOA附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

研究 | CT图像迭代重建算法研究进展

上次讲到我实现了一下代数迭代重建&#xff08;ART&#xff09;&#xff0c;到周六开会的时候才大概了解了我的研究方向应该是统计迭代重建&#xff0c;一下子就把我给搞懵了。按照书上的说法&#xff0c;统计迭代法是在发射型CT&#xff08;SPECT和PET&#xff09;中应用广泛&…

WMS系统4.0,仓库管理的20年历史变局你知道吗?

20年之前&#xff0c;中国的仓储物流技术还处于起步阶段&#xff0c;很多时候都是从国外企业的经验中摸索出来的&#xff0c;而高端的技术&#xff0c;依然需要国外企业来完成。 20年过去了&#xff0c;中国庞大的应用场景、庞大的产业、庞大的物料、庞大的商业活动推动着中国的…

如何用Zabbix监控温湿度?Zabbix对接modbus tcp设备实操

背景&#xff1a; 1、公司机房没有专用的温度监控设备&#xff0c;以往是通过snmp功能get服务器的CPU或是主板温度&#xff0c;根据偏差值算出机房的大致温度(温度计值与服务器的差值)&#xff0c;可最近研发部门经常在服务器跑高负载任务&#xff0c;导致计算出的环境温度极度…

实验7 数据库编程

第1关 定义一个名为PROC_COUNT的无参数存储过程 任务描述 定义一个名为PROC_COUNT的无参数存储过程&#xff0c;查询工程名称中含有“厂”字的工程数量&#xff0c;并调用该存储过程。 相关知识 1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)…

计算机网络-网络层:IP协议

目录 一、IP协议格式 二、IP地址管理 1.动态地址分配&组建私网 1.1 动态地址分配DHCP 1.2 NAT技术组建私网 2. 早期网络划分方式 3. 当前网络划分方式CIDR方案 4. 特殊IP地址 5. 公网与私网&#xff08;外网与内网&#xff09; 6. 路由选择 网络层&#xff1a;负…

JavaScript Date对象中的常用方法有哪些?

JavaScript中的日期对象用来处理日期和时间。例如&#xff0c;秒杀活动中日期的实时显示、时钟效果、在线日历等。下面将对日期对象进行详细讲解。 日期对象的使用 JavaScript中的日期对象需要使用new Date()实例化对象才能使用&#xff0c;Date()是日期对象的构造函数。在创…

服务访问质量(QoS)介绍与技术 一

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。个人爱好: 编程&#xff0c;打篮球&#xff0c;计算机知识个人名言&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石…

【LeetCode每日一题】——1290.二进制链表转整数

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 链表 二【题目难度】 简单 三【题目编号】 1290.二进制链表转整数 四【题目描述】 给你一个单…

Python时间模块之time模块

在项目开发中做功能经常会用到关于时间的操作。比如会员过期的定时任务&#xff0c;一些代码的延迟执行。今天介绍时间模块中的time模块。 目录 1.表示时间的方式&#xff1a; 2.格式化时间中字符的含义&#xff1a; 3.函数转换关系 4.函数介绍及应用 time() localtime() …

10Gb每秒!SM4的单核“心”!海泰携手海量数据安全“闪”护

引言 密码技术是保护网络与信息系统安全的核心技术&#xff0c;已经广泛应用到金融、能源、通信、交通、水利等各行各业&#xff0c;为国家安全和经济发展发挥重要作用。商用密码应用安全性评估&#xff08;简称密评&#xff09;&#xff0c;是指在釆用商用密码技术、产品和服务…

[附源码]计算机毕业设计汽车租赁管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【numpy简介、入门、数组创建】

&#x1f935;‍♂️ 个人主页老虎也淘气 个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f44d;&#x1f3fb; 收藏…

基于jsp+mysql+ssm学生网上请假系统-计算机毕业设计

项目介绍 随着高校招生规模的逐步扩大和教学方式的改革&#xff0c;在校学生人数将不断增加。另一方面&#xff0c;我国高等学校基层学生考核工作的内容杂&#xff0c;管理细&#xff0c;要求高&#xff0c;头绪多&#xff0c;传统的手工档案式管理办法已基本不适应新形势的要…

[附源码]JAVA毕业设计社区管理与服务(系统+LW)

[附源码]JAVA毕业设计社区管理与服务&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&a…

XX集团BIM项目解决方案

目 录 一、BIM发展现状 二、集团BIM建设总体规划&#xff08;建议&#xff09; 1、BIM实施目标 2、BIM实施的范围 3、BIM实施原则 4、集团BIM项目组织架构 4.1职能分配 4.2建模组织形式 4.3人员匹配建议 5、集团BIM应用功能架构 5.1 BIM平台对集团管理层面的价值 5…

原来Python自带了数据库,用起来真方便

Python作为数据科学主流语言&#xff0c;被广泛用于数据读存、处理、分析、建模&#xff0c;可以说是无所不能。 数据一般存放在本地文件或者数据库里&#xff0c;之前介绍过如何使用python读取本地文件&#xff0c;也对# PyMySQL、cx_Oracle等数据库连接库做过简单的使用分享…

乾元通多卡聚合通信设备应急指挥车视频图传解决方案

行业现状 1) 不稳定&#xff1a;单一通信链路受运营商网络覆盖影响&#xff0c;不同区域信号强度不一样&#xff0c;无法实现。 2) 网速慢&#xff1a;受基站信号质量及拥塞影响&#xff0c;单路网速较差&#xff0c;高清视频监控等由于网络带宽不够&#xff0c;只能以低画质…

基于jsp+ssm的新生入学报道系统-计算机毕业设计

项目介绍 众多高校为了响应国家的号召&#xff0c;很多管理办法都落实到科学管理&#xff0c;通过计算机来实现对学校的具体管理办法当中&#xff0c;不仅仅促进了学校里计算机系统管理的发展&#xff0c;同时一定程度上加大了对学校的管理力度&#xff0c;数据量的不断增加&a…