Vue+Echarts 实现中国地图和飞线效果

目录

    • 实现效果
    • 准备

实现效果

在这里插入图片描述

在线预览:https://mouday.github.io/vue-demo/packages/china-map/dist/index.html

准备

高版本的echarts,不包含地图数据,需要自己下载到项目中

1、地图数据下载

https://datav.aliyun.com/portal/school/atlas/area_selector#&lat=30.332329214580188&lng=106.72278672066881&zoom=3.5

2、注册地图到echarts中

//根据自身情况,粘贴来的数据放在哪里就从哪里导入
import chinaMap from "@/assets/map/china.json";//注册地图到echarts中  这里的 "china" 要与地图数据的option中的geo中的map对应
echarts.registerMap("china", { geoJSON: chinaMap });

为了能复现效果,给出了项目的完整结构和完整代码

项目结构

$ tree -I node_modules
.
├── package.json
└── src├── App.vue├── ChinaMap.vue├── main.js└── utils├── event-util.js└── map-util├── china.json├── index.js└── map-data.js

package.json

{"scripts": {"dev": "vue-cli-service serve","build": "vue-cli-service build"},"dependencies": {"echarts": "^5.5.0","element-ui": "^2.15.11","vue": "^2.6.14"},"devDependencies": {"@vue/cli-service": "^5.0.8","less": "^4.0.0","less-loader": "^8.0.0","vue-template-compiler": "^2.6.14"}
}

ChinaMap.vue

主要有3个部分:地图、线条、点

<template><div class="chartMap" ref="chinaMap"></div>
</template><script>
import * as echarts from "echarts";
import "@/utils/map-util/index.js"; // 注册地图数据
import { chinaRegions } from "@/utils/map-util/map-data.js";// 事件监听工具类
import * as eventUtil from "@/utils/event-util.js";export default {name: "dataView",data() {return {chinaMap: "", // 地图};},created() {},mounted() {this.init();},beforeDestroy() {eventUtil.off(window, "resize", this.handleWindowResize);},methods: {handleWindowResize() {//动态改变图表尺寸this.chinaMap.resize();},init() {this.getMap(); // 地图},// 地图getMap() {this.chinaMap = echarts.init(this.$refs.chinaMap);let option = {// 设置地图样式geo: {map: "china",zoom: 1.2,layoutSize: "100%", //保持地图宽高比// 设置图块颜色,也可以通过图例 visualMap 设置颜色,但是飞线的颜色设置会失效,一直取 图例 设置的颜色;根据需求选择;regions: chinaRegions,label: {// 默认样式normal: {show: false,fontSize: "10",color: "rgba(255,255,255,.3)",},// 高亮样式emphasis: {show: true,textStyle: {color: "#1955a4",},},},itemStyle: {// 默认样式,图块没数据时,会取默认颜色normal: {borderColor: "#c0e0e3",areaColor: "#29c5f6",opacity: 0.8,},// 高亮样式emphasis: {areaColor: "#f2d5ad",},},},series: [// 设置飞线样式{type: "lines",coordinateSystem: "geo",zlevel: 100,effect: {show: true,period: 4, // 图标飞跃速度,值越小速度越快trailLength: 0.2, // 尾迹长度[0,1]值越大,尾迹越长symbol: "pin", // 图标类型symbolSize: 4, // 图标大小color: "#f5f3b3", // 图标颜色},lineStyle: {color: "#000",normal: {show: true,width: 1, //尾迹线条宽度opacity: 0.1, //尾迹线条透明度curveness: 0.3, //尾迹线条曲直度color: "#44add00f", // 飞线颜色},},// 飞线数据data: [[{// 出发coord: [117.1582, 36.8701], // 山东value: 1,},{// 目的地coord: [116.4551, 40.2539], // 北京},],[{// 出发coord: [110.3893, 19.8516], // 海南value: 1,},{// 目的地coord: [116.4551, 40.2539], // 北京},],],},// 中心点设置{type: "effectScatter",coordinateSystem: "geo",zlevel: 15,rippleEffect: {period: 3,brushType: "fill", // 动画样式 fill strokescale: 60,color: "#7ce7fd",number: 2,},symbol: "circle", // 图标样式symbolSize: 2,itemStyle: {color: "#5cc8d4",},// 中心点数据data: [{name: "北京",value: [116.4551, 40.2539, 10],},],},],};this.chinaMap.setOption(option);eventUtil.on(window, "resize", this.handleWindowResize);},},
};
</script><style lang="less">
.chartMap {width: 500px;height: 500px;background: #132d48;
}
</style>

源码地址:https://github.com/mouday/vue-demo

参考文章

  • Echarts 实现中国地图 + 飞线效果

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

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

相关文章

行为监控软件监控什么 行为监控软件下载

行为监控软件主要用于监控和分析用户的行为模式。这类软件可以监控的内容相当广泛&#xff0c;安企神作为典型的行为监控软件&#xff0c;可以从中窥见软件监控的内容&#xff1a; 找客服咨询价格 1、应用程序与上网行为管理 应用程序监控&#xff1a;跟踪员工使用各类软件的…

云渲染100的优惠活动有哪些?渲染100邀请码1a12

现在的云渲染平台有很多&#xff0c;每个平台都有各种活动&#xff0c;以广受好评的云渲染平台渲染100为例&#xff0c;我们来说下设计师怎样才能省钱又方便吧。 1、新用户福利 渲染100对新用户很友好&#xff0c;注册时填邀请码1a12有新手大礼包&#xff0c;可以渲染20多张小…

Redis底层数据结构之IntSet

目录 一、概述二、IntSet结构三、自动升级 上一篇 redis底层数据结构之Dict 下一篇 Redis底层数据结构之ZSkipList 一、概述 IntSet是一个存储整数值的集合&#xff0c;内部使用有序、无重复的数组保存数据。优点:节省内存空间。高效的查找、插入和删除操作。使用场景: 在集合…

StarRocks最佳实践经验

目录 一、部署 1.1 容量规划 1.2 基础环境配置 1.3 机器配置 1.3.1 FE节点 1.3.2 BE节点 1.4 部署方案 二、建模 2.1 建表规范 2.2 模型选择 2.3 排序列和前缀索引选择 2.4 分区选择 2.5 分桶选择 2.6 字段类型 2.7 索引选择 2.7.1 Bitmap索引 2.7.2 Bloom fi…

Element-plus DatePicker 日期选择器【正则校验时间范围】

效果图&#xff1a; 利用element-plus中的form表单验证完成效果。 <el-form-item label"检查计划截止日期&#xff1a;" prop"deadline"><el-date-pickerv-model"form.deadline"value-format"YYYY-MM-DD"style"width: …

【复现】金和OA-jc6 RCE漏洞_74

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 金和C6协同管理平台包括协同办公管理,人力资源管理,项目管理,客户关系管理,企业目标管理,费用管理,移动办公,微信办公等多个业务范…

2024年【北京市安全员-B证】模拟考试题库及北京市安全员-B证操作证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-B证模拟考试题库是安全生产模拟考试一点通总题库中生成的一套北京市安全员-B证操作证考试&#xff0c;安全生产模拟考试一点通上北京市安全员-B证作业手机同步练习。2024年【北京市安全员-B证】模拟考试…

ZeRO论文阅读

一.前情提要 1.本文理论为主&#xff0c;并且仅为个人理解&#xff0c;能力一般&#xff0c;不喜勿喷 2.本文理论知识较为成体系 3.如有需要&#xff0c;以下是原文&#xff0c;更为完备 Zero 论文精读【论文精读】_哔哩哔哩_bilibili 二.正文 1.前言 ①为什么用该技术&…

docker网络和模式

Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个…

【软件测试】采用等价类划分法设计测试用例

例题1 请采用等价类划分法设计测试用例。 考虑软件 app, 它有两个输入变量 , 分别是 name 和 age, 其中 ,name 是至多包含 20 个字母字符的非空字符串 ,age 是整数型变量 ,0 ≤ age ≤ 120 。当输入给 name 的字符串的长度超过 20时 ,name 取前 20 个字符作为 name 的值 ; 如果…

Flink窗口机制

1.窗口的概念 窗口概念 时间是为窗口服务的。窗口是什么&#xff1f;为什么会有窗口呢&#xff1f; &#xff08;1&#xff09;Flink要处理的数据&#xff0c;一般是从Kafka过来的流式数据&#xff0c;如果只是单纯地统计流的数据量&#xff0c;是没办法统计的。 &#xff08;…

【目标检测论文解读复现NO.35】采用改进的 EfficientNet 识别苹果叶片病害

前言 此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…