vue中利用Echarts实现飞线(飞机)地图样式

news2025/1/13 10:28:43

实现效果
思想:主要是三个要素:1 地图样式 2散点图 3飞线 组合配置后就形成以下效果。

在这里插入图片描述

第一步:vue中引入Echarts

npm install vue-echarts echarts

第二步:导入代码

代码已经写好,直接引入运行就好了,关键代码有注释,可查询修改。

<template>
    <!-- 飞线图组件 -->
  <div class="map">
    <h2>消费者扫码辐射图</h2>
    <!-- 地图容器 -->
    <div class="content" ref="echarts">
    </div>
  </div>
</template>

<script>
// 引入echarts
import * as echarts from 'echarts'
// 引入地图
import 'echarts/lib/chart/map'
// 引入js
import 'echarts/map/js/china.js'

export default {
  components: {},
  data () {
    // 这里存放数据
    return {}
  },

  mounted () {
    this.init()
  },
  // 数据部分
  methods: {

    init () {
      const myChart = echarts.init(this.$refs.echarts)
      // 这个数据是散点数据,用于在地图上面展示。
      const chinaGeoCoordMap = {
        黑龙江: [127.9688, 45.368],
        内蒙古: [110.3467, 41.4899],
        吉林: [125.8154, 44.2584],
        宜宾市: [104.630825, 28.760189],
        辽宁: [123.1238, 42.1216],
        // 河北: [114.4995, 38.1006],
        // 天津: [117.4219, 39.4189],
        // 山西: [112.3352, 37.9413],
        // 陕西: [109.1162, 34.2004],
        // 甘肃: [103.5901, 36.3043],
        // 宁夏: [106.3586, 38.1775],
        // 青海: [101.4038, 36.8207],
        // 新疆: [87.9236, 43.5883],
        // 西藏: [91.11, 29.97],
        // 四川: [103.9526, 30.7617],
        // 重庆: [108.384366, 30.439702],
        // 山东: [117.1582, 36.8701],
        // 河南: [113.4668, 34.6234],
        // 江苏: [118.8062, 31.9208],
        // 安徽: [117.29, 32.0581],
        // 湖北: [114.3896, 30.6628],
        // 浙江: [119.5313, 29.8773],
        // 福建: [119.4543, 25.9222],
        // 江西: [116.0046, 28.6633],
        // 湖南: [113.0823, 28.2568],
        安阳: [113.625891, 35.20554],
        贵州: [106.6992, 26.7682],
        云南: [102.9199, 25.4663],
        广东: [113.12244, 23.009505],
        广西: [108.479, 23.1152],
        海南: [110.3893, 19.8516],
        上海: [121.4648, 31.2891]
      }
      // 散点
      const chinaDatas = []// 临时数组
      // const mapObject = { name: '', value: null }
      // 飞线
      const lineObject = { coords: [[113.4668, 34.6234]] }
      const linesCoord = []
      for (const key in chinaGeoCoordMap) {
        const mapObject = { name: '', value: null }
        // console.log('打印一下key:' + key)
        mapObject.name = key
        mapObject.value = chinaGeoCoordMap[key]
        // chinaDatas.push(JSON.parse(JSON.stringify(mapObject)))
        chinaDatas.push(mapObject)

        if (key !== '广东') {
          lineObject.coords[1] = chinaGeoCoordMap[key]
          linesCoord.push(JSON.parse(JSON.stringify(lineObject)))
        }
      }

      // 配置部分
      const option = {
        // geo配置详解: https://echarts.baidu.com/option.html#geo

        // 这里是配置最下面的地图部分
        geo: {
          zlevel: 0, // 数值越大越是在上面
          map: 'china',
          show: true,
          roam: false, // 使地图不能放大拖动
          top: '20px',
          label: {
            emphasis: {
              show: false,
              focus: 'self'
            }
          },
          // 地图的背景色
          itemStyle: {
            normal: {
              areaColor: 'rgba(0, 0, 0, 0)', // 变成透明
              borderColor: '#fff',
              shadowColor: '#09184F',
              shadowBlur: 20
              // borderWidth: 20
            }
          }
        },
        series: [
          // 配置散点图的数据
          {
            type: 'effectScatter',
            coordinateSystem: 'geo',
            // 要有对应的经纬度才显示,先经度再维度
            data: chinaDatas,
            showEffectOn: 'render',
            rippleEffect: {
              scale: 4, // 波纹的最大缩放比例
              brushType: 'stroke'
            },
            hoverAnimation: true,
            label: {
              normal: {
                show: true,
                formatter: '{b}',
                position: 'right',
                fontWeight: 500,
                fontSize: 14
              }
            },
            itemStyle: {
              normal: {
                // color: '#00e3ff',
                color: 'yellow',
                shadowBlur: 5,
                shadowColor: '#333'
              }
            },
            emphasis: {
              itemStyle: {
                color: '#f4e925' // 高亮颜色
              }
            },
            zlevel: 1
          },
          // 飞线的配置
          {
            type: 'lines',
            coordinateSystem: 'geo',
            zlevel: 1,
            effect: { // 飞机的特效配置
              show: true,
              period: 5,
              trailLength: 0,
              symbol: 'image:src/assets/airplane.svg',
              color: 'yellow',
              symbolSize: 8
            },
            lineStyle: {
              normal: {
                width: 1.2,
                opacity: 0.6,
                curveness: 0.2,
                color: '#FFB800'
              }
            },
            data: linesCoord
          }
        ]
      }
      myChart.setOption(option)
    }
  }
}
</script>
  <style lang="scss" scoped>
  .map{
  width: 900px;
  height: 900px;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  // background-image: url("../assets/bg.jpg");
  }
  h2{
    left: 35%;
  top: 15%;
    padding-top: 40px;
    color: #fff;
    font-size:22px;
    // top: 200px;
    position: absolute;
  }

.content {
    width: 800px;
    height: 800px;
    top: 200px;
    position: absolute;
    // height: 100vh;

}
</style>

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

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

相关文章

NO.02 依赖注入

目录 1、前言 2、两种依赖注入的方式 2.1 依赖注入之setter注入 2.2 依赖注入之构造器注入 3、依赖注入之特殊值处理 3.1 字面量赋值 3.2 null值赋值 3.3 XML实体&#xff08;<&#xff09; 4、完整测试类 1、前言 依赖注入就是为类的属性赋值&#xff0c;在我们获…

卷积神经网络实现猴痘疾病图像分类 - P4

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;Pytorch实战 | 第P4周&#xff1a;猴痘病识别&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子 目录…

Python数据分析实战-对列表里面的元素绘制词云图(附源码和实现效果)

实现功能 词云也叫文字云&#xff0c;是一种可视化的结果呈现&#xff0c;原理就是统计文本中高频出现的词&#xff0c;将结果生成一张图片&#xff0c;直观的获取数据的重点信息 实现代码 from wordcloud import WordCloud import matplotlib.pyplot as plt# 假设你的字符串…

浅谈大数据智能审计如何助力审计工作

随着互联网大数据的持续发展&#xff0c;大数据审计近年来面对着相等的机遇和挑战。那么&#xff0c;如果利用大数据等相关技术对审计工作作出突出贡献&#xff0c;单位和企业又该从何入手做好大数据审计工作应用&#xff0c;这些都成为每位审计人员将要面临的重要问题。 1. 政…

电机控制软件框架

应用层包括main 主函数模块&#xff0c;ISR 中断处理函数模块、时基Systick 模块和BLDC 应用接口模块&#xff1b;算法层包括BLDC Algorithm 模块和PID control 模块&#xff1b;驱动层&#xff08;Driver layer&#xff09;&#xff1a;包括GD32Fxx_Standard_peripheral libra…

基于SSM的OA办公系统Java企业人事信息管理jsp源代码MySQL

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于SSM的OA办公系统 系统有1权限&#xff1a;管理员…

课程项目设计--spring security--认证管理功能--宿舍管理系统--springboot后端

写在前面&#xff1a; 还要实习&#xff0c;每次时间好少呀&#xff0c;进度会比较慢一点 本文主要实现是用户管理相关功能。 前文项目建立 文章目录 验证码功能验证码配置验证码生成工具类添加依赖功能测试编写controller接口启动项目 security配置拦截器配置验证码拦截器 …

台积电美国厂施工现场混乱,真令人头痛 | 百能云芯

近日&#xff0c;英伟达公司的财报表现异常亮眼&#xff0c;摩根士丹利不仅点名了台积电成为最大的受益者&#xff0c;还预测每售出一颗H100英伟达芯片&#xff0c;台积电就能获得900美元的利润。然而&#xff0c;美国媒体却曝出了一则不利的消息&#xff0c;称美国亚利桑那州的…

Hbase文档--架构体系

阿丹&#xff1a; 基础概念了解之后了解目标知识的架构体系&#xff0c;就能事半功倍。 架构体系 关键组件介绍&#xff1a; HBase – Hadoop Database&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起…

vue3 vite使用 monaco-editor 报错

报错&#xff1a;Unexpected usage at EditorSimpleWorker.loadForeignModule 修改配置&#xff1a; "monaco-editor-webpack-plugin": "^4.2.0",删除不用 版本&#xff1a; "monaco-editor": "^0.28.1", 修改如下&#xff1a; opti…

Python“牵手”虾皮(Shopee)商品详情API接口运用场景及功能介绍,虾皮API接口申请指南

虾皮&#xff08;Shopee&#xff09;电商API接口是针对虾皮提供的电商服务平台&#xff0c;为开发人员提供了简单、可靠的技术来与虾皮电商平台进行数据交互&#xff0c;实现一系列开发、管理和营销等操作。其中包括商品详情API接口&#xff0c;通过这个API接口商家可以获取商品…

SLS日志解析配置

分隔符模式 INFO|2023-04-10T11:05:30.12808:00|X.X.X.X|ACCESS_ALLOWED|1 模式&#xff1a;分隔符模式 日志样例&#xff1a;贴文档说明中的样例&#xff0c;或者直接在SLS历史日志里找一行 分隔符&#xff1a;竖线 日志抽取内容Key用文档中说明的变量名 是否接受部分字段&am…

CMIP6中的模式比较计划、CMIP6数据下载、单点降尺度、统计方法的区域降尺度、基于WRF模式的动力降尺度及气候变化、生态、水文等典型案例

CMIP6数据被广泛应用于全球和地区的气候变化研究、极端天气和气候事件研究、气候变化影响和风险评估、气候变化的不确定性研究、气候反馈和敏感性研究以及气候政策和决策支持等多个领域。这些数据为我们理解和预测气候变化&#xff0c;评估气候变化的影响和风险&#xff0c;以及…

Docker容器与虚拟化技术:Harbor私有仓库部署与迁移

目录 一、理论 1.本地私有仓库 2.Harbor 二、实验 1.Docker搭建本地私有仓库 2.docker-compose部署及配置 3.harbor部署及配置 4.登录创建项目 5.在其他客户端上传镜像 6. harbor维护 7.移除 Harbor 服务容器同时保留镜像数据/数据库&#xff0c;并进行迁移 三、问题…

把Android手机变成电脑摄像头

一、使用 DroidCam 使用 DroidCam&#xff0c;你可以将手机作为电脑摄像头和麦克风。一则省钱&#xff0c;二则可以在紧急情况下使用&#xff0c;比如要在电脑端参加一个紧急会议&#xff0c;但电脑却没有摄像头和麦克风。 DroidCam 的安卓端分为免费的 DroidCam 版和收费的 …

服务器数据恢复-服务器RAID6硬盘故障离线的数据恢复案例

服务器数据恢复环境&#xff1a; 服务器中有一组由6块磁盘组建的RAID6磁盘阵列。服务器作为WEB服务器使用&#xff0c;上面运行了MYSQL数据库以及存放了网站代码和其他数据文件。 服务器故障&#xff1a; 在服务器运行过程中该raid6阵列中有两块磁盘先后离线&#xff0c;但是管…

火山引擎DataLeap基于Apache Atlas自研异步消息处理框架

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 字节数据中台DataLeap的Data Catalog系统通过接收MQ中的近实时消息来同步部分元数据。Apache Atlas对于实时消息的消费处理不满足性能要求&#xff0c;内部使用Flin…

Mysql索引、事务与存储引擎 (索引)

一、索引 1、索引的概念&#xff1a; 索引就是一种帮助系统能够更加快速的查找信息的数据结构。 2.索引的作用&#xff1a; ①数据库利用各种快速定位技术&#xff0c;能够大大加快查询速度&#xff0c;这是创建索引的最主要的原因。 ②当表很大或查询涉及到多个表时&#xff0…

Linux安装软件每次靠百度,这次花了些时间,终于算是搞明白了

Linux下安装命令虽然经常使用&#xff0c;但也仅仅是会使用&#xff0c;每次再用时依然的百度 。于是就花了些时间整体的梳理了一番&#xff0c;以便于更好的理解。 1.安装流程介绍 在Linux下安装软件&#xff0c;其实也是遵循着和Windows一样的安装流程。 首先&#xff0c;…

巨人互动|Facebook海外户Facebook游戏全球发布实用策略

Facebook是全球最大的社交媒体平台之一&#xff0c;拥有庞大的用户基数和广阔的市场。对于游戏开发商而言&#xff0c;利用Facebook进行全球发布是一项重要的策略。下面小编将介绍一些实用的策略帮助开发商在Facebook上进行游戏全球发布。 巨人互动|Facebook海外户&Faceboo…