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

news/2024/4/29 15:03:57/文章来源:https://blog.csdn.net/weixin_62897746/article/details/128203821

目录

  • 前言:
  • 什么是 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.luyixian.cn/news_show_231316.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机

【原文链接】基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机 文章目录一、基础准备工作二、自动创建基于dhcp自动获取ip地址的openEuler虚拟机三、自动创建配置静态IP地址的openEuler虚拟一、基础准备工作 &#xff08;1&#xff09;下载ARM架构…

[附源码]Python计算机毕业设计Django校园订餐系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【Linux|树莓派】分文件编程以及静态库动态库

一、分文件编程 简单来说树莓派的分文件编程就是将一个项目的代码放在不同的文件里面&#xff0c;然后在主函数添加一个头文件&#xff0c;这样会使#控制字体颜色主程序变得简单。 在编译的时候要将主函数和功能函数一起编译&#xff1a; 注意&#xff1a;include <stdio.h…

Matplotlib入门[04]——处理图像

Matplotlib入门[04]——处理图像 参考&#xff1a; https://ailearning.apachecn.org/Matplotlib官网 图片来源&#xff1a;百度&#xff08;如有侵权&#xff0c;立删&#xff09; 使用Jupyter进行练习 import matplotlib.pyplot as plt import matplotlib.image as mpimg imp…

【Java学习Note】第8章 多线程

8. 多线程 文章目录8. 多线程8.1 程序、进程、线程8.2 线程的创建8.2.1 继承Thread类-创建线程方法之一8.2.2 Thread常用方法8.2.3 实现Runnable接口-创建线程方法之二8.2.4 两种多线程的区别8.3 线程得调度8.4 线程的生命周期8.5 线程的同步8.5.1 线程同步--Synchronized8.5.2…

CUDA入门和网络加速学习(一)

0. 简介 最近作者希望系统性的去学习一下CUDA加速的相关知识&#xff0c;正好看到深蓝学院有这一门课程。所以这里作者以此课程来作为主线来进行记录分享&#xff0c;方便能给CUDA网络加速学习的萌新们去提供一定的帮助。 1. GPU与CPU区别 处理器指标一般主要分为两大类&…

使用react-grid-layout和react-full-screen实现一个可自定义和全屏展示的dashboard页面

文章目录使用react-grid-layout和react-full-screen实现一个可自定义和全屏展示的dashboard页面具体实现代码展示主展示页面懒加载组件组件加载时展示的组件dashboard菜单组件具体的图表组件Demo演示使用react-grid-layout和react-full-screen实现一个可自定义和全屏展示的dash…

【微服务】SpringCloud中OpenFeign请求处理及负载均衡流程

&#x1f496; Spring家族及微服务系列文章 ✨【微服务】SpringCloud中Ribbon的WeightedResponseTimeRule策略 ✨【微服务】SpringCloud中Ribbon的轮询(RoundRobinRule)与重试(RetryRule)策略 ✨【微服务】SpringCloud中Ribbon集成Eureka实现负载均衡 ✨【微服务】SpringCloud…

EMQ 宣布推出 LF Edge eKuiper 全新 Logo 标识

全球领先的开源物联网数据基础设施软件供应商 EMQ 映云科技宣布,即日起,将正式启用全新的 LF Edge eKuiper(以下简称 eKuiper)产品 Logo。焕然一新的 eKuiper 产品 Logo 标志着 EMQ 在不断提升品牌全球化战略之上,对于打造高性能、高可用、高安全的世界级开源软件产品的极致追求…

【1805. 字符串中不同整数的数目】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个字符串 word &#xff0c;该字符串由数字和小写英文字母组成。 请你用空格替换每个不是数字的字符。例如&#xff0c;"a123bc34d8ef34" 将会变成 " 123 34 8 34" 。注意…

面试题: LEAD 和 LAG 求每个用户的页面停留时长

我们先来看看这两个函数的语法&#xff1a; LEAD(col,n,default) OVER() 说明&#xff1a; 用于统计窗口内向下第n行的值参数1&#xff1a; 为要取值的列名参数2&#xff1a; 为向下第n行&#xff0c;默认值为1&#xff0c;这个值是固定的&#xff0c;不能动态的变化参数3&am…

深度学习-全卷积神经网络(FCN)

1. 简介 全卷积神经网络&#xff08;Fully Convolutional Networks&#xff0c;FCN&#xff09;是Jonathan Long等人于2015年在Fully Convolutional Networks for Semantic Segmentation一文中提出的用于图像语义分割的一种框架&#xff0c;是深度学习用于语义分割领域的开山之…

国际学校妈妈哭诉IB太难:中国孩子都不知道怎么答题?

听别人说考国际学校的IB体系相对简单直到我看到IB试题才知道其实IB一点都不容易特别对于中国学生有大量写论文的部分来看看IB的真题有些学生真的很难下笔不知道怎么答题啊&#xff01;商科生物 题目都是非常考验综合能力的&#xff0c;学生需要掌握很多知识点并融会贯通&#x…

cengbox2靶机(hydra爆破、公私钥免密登录)

环境准备 靶机链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;zdpr 虚拟机网络链接模式&#xff1a;桥接模式 攻击机系统&#xff1a;kali linux 2021.1 信息收集 1.arp-scan -l探测目标靶机ip 2.nmap -p- -A -T4 192.168.1.107 探测目标靶机开放端口和服务 …

Locust学习记录5-任务属性【Task】

Task 当负载测试开始时&#xff0c;将为每个模拟用户创建一个User类的实例&#xff0c;他们将开始在自己的绿色线程中运行。当这些用户运行时&#xff0c;他们选择他们执行的任务&#xff0c;休眠一段时间&#xff0c;然后选择一个新任务。 这些任务时普通的python可调用文件…

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

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

K8S Pod控制器详细讲解

文章目录一、Pod控制器介绍二、ReplicaSet(RS)三、Deployment(Deploy)1.镜像更新&#xff1a;2.版本回退3.金丝雀发布/灰度发布四、Horizontal Pod Autoscaler(HPA)五、DaemonSet(DS)六、Job七、CronJob(CJ)结尾一、Pod控制器介绍 Pod是kubernetes的最小管理单元&#xff0c;在…

使用JAR签名进行代码签名

JavaArchive(JAR)包格式可用于打包Java应用程序和库。 签名的JAR文件可以选择包含来自TSA时间戳响应&#xff0c;使用RFC#3161格式。 添加JAR签名者添加JAR签名者的链接&#xff0c;SignServer中的JAR签名器称为JArchiveSigner。 要配置JArchiveSigner&#xff0c;请按照以下…

用代码画两棵圣诞树送给你【附详细代码】

大家好&#xff0c;我是宁一 代码的魔力之处在于&#xff0c;可以帮我们实现许多奇奇怪怪、有趣的想法。 比如&#xff0c;用Python的Turtle库&#xff0c;可以帮我们在电脑上画出好看的图像。 下面这张樱花图就是用Turtle库实现的。 这不圣诞节快到啦。 那么就用代码来画一…

jsp servlet mysql实现的二手车汽车管理系统项目源码附带视频指导运行教程

今天给大家演示一下由jsp servlet mysql实现的一款简单的二手车汽车管理系统&#xff0c;系统设计采用了mvc分层的模式&#xff0c;结构非常清晰&#xff0c;功能虽简单&#xff0c;但是把所有可能用到的功能都实现了&#xff0c;往上面添加功能很简单&#xff0c;直接复制代码…