返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue+echarts5实现中国地图的示例代码
  • 153
分享到

vue+echarts5实现中国地图的示例代码

2024-04-02 19:04:59 153人浏览 独家记忆
摘要

使用echarts5.0版本实现中国地图,E charts在5.0版本之后,地图不能直接引入了,需要自己去下载。 地图文件下载地址:下载地址(Http://datav.aliyun.

使用echarts5.0版本实现中国地图,E charts在5.0版本之后,地图不能直接引入了,需要自己去下载。

地图文件下载地址:
下载地址
Http://datav.aliyun.com/portal/school/atlas/area_selector#&lat=30.772340792178525&lng=103.94573258937584&zoom=9.5)

注意: 将下载后的JSON文件放置/public目录下

map类型的地图

<template>
    <div>
        <div ref="mapEcharts" class="map-echart"></div>
    </div>
  
</template>

<script>
import * as echarts from 'echarts'
import axiOS from 'axios'

export default {
  name: "Map",
  data() {
    return {
      timer: null,
      seriesData: [
        {name: '天津市', value: 20057.34},
        {name: '北京市', value: 15477.48},
        {name: '上海市', value: 31686.1},
        {name: '河北省', value: 6992.6},
        {name: '山东省', value: 44045.49},
        {name: '山西省', value: 4045.49},
      ],
      map: null
    }
    
  },
  created() {
    
  },
  mounted(){
      this.initMapEcharts();
  },
  methods: {
    initMapEcharts() {
      // 获取地图数据
      // 将下载后的json文件放置/public目录下
      axios.get('/china.json').then(res => {
          console.log(res);
         // 使用数据注册地图
         echarts.reGISterMap('china', res.data)
          this.$nextTick(() => {
            // 初始化地图
            this.map = echarts.init(this.$refs['mapEcharts'])
            // 设置基础配置项
            const option = {
              // 标题
              title: {
                text:"中国地图",
                left: 'center',
                subtext: "下载链接",
                sublink: "http://datav.aliyun.com/tools/atlas/#&lat=30.772340792178525&lng=103.94573258937584&zoom=9.5"
              },
              // 悬浮窗
              tooltip: {
                trigger: 'item',
                fORMatter: function(params) {
                  return `${params.name}: ${params.value || 0}`

                }
              },
              // 图例
              visualMap: {
                min: 800,
                max: 50000,
                text: ['High', 'Low'],
                realtime: false,
                calculable: true,
                inRange: {
                    color: ['lightskyblue', 'yellow', 'orangered']
                }
              },
              // 要显示的散点数据
              series: [
                {
                  type: 'map',
                  map: 'china',
                  // 这是要显示的数据
                  data: this.seriesData,
                  // 自定义命名映射,不设置的话,label默认是使用 geoJson中的name名
                  nameMap: {
                    '北京市': "北京重命名",
                    "天津市": '天津重命名'
                  },
                },
                
              ]
            }
            // 将配置应用到地图上
            this.map.setOption(option)
            // 设置定时器,自动循环触发tooltip悬浮窗事件
            this.setTimer()
            let that = this;
            // 当鼠标在地图上时,停止自动tooltip事件
            this.map.on('mouseover', {series: 0,}, function(params) {
              that.clearTimer()
            })
            // 当鼠标移出地图后,再自动tooltip
            this.map.on('mouseout', {series: 0}, function(params) {
              that.setTimer()
            })
          })
      })
    },
    setTimer() {
      // 当前选中区域的下标
      let curIndex = -1;
      this.timer && clearInterval(this.timer)
      this.timer = setInterval(() => {
        const len = this.seriesData.length;
        // dispatchAction是主动去触发echarts事件,取消高亮当前的数据图形
        this.map.dispatchAction({
          type: 'downplay',
          seriesIndex: 0,
          dataindex: curIndex
        })
        // 下一个选中区域的下标
        curIndex = (curIndex + 1) % len;
        // 高亮下一个数据图形
        this.map.dispatchAction({
          type: 'highlight',
          seriesIndex: 0,
          dataIndex: curIndex
        })
        // 显示tooltip
        this.map.dispatchAction({
          type: 'showTip',
          seriesIndex:0,
          dataIndex: curIndex
        })
      }, 1000)
    },
    clearTimer() {
      this.timer && clearInterval(this.timer)
    },
  },
  
  beforeDestroy() {
    this.clearTimer()
  }
}
</script>

<style>
.map-echart {
  height: 900px;
  width: 900px;
}
</style>

在这里插入图片描述

geo类型地图

<template>
    <div>
        <div ref="geoEcharts" class="geo-echart"></div>
    </div>
  
</template>

<script>
import * as echarts from 'echarts'
import axios from 'axios'
import { color } from 'echarts'

export default {
  name: "Geo",
  data() {
    return {
      timer: null,
      seriesData: [
        {name: '天津市', value: 20057.34},
        {name: '北京市', value: 15477.48},
        {name: '上海市', value: 31686.1},
        {name: '河北省', value: 6992.6},
        {name: '山东省', value: 44045.49},
        {name: '山西省', value: 4045.49},
      ],
      map: null
    }
    
  },
  created() {
    
  },
  mounted(){
      this.initGeoEcharts();
  },
  methods: {
    initGeoEcharts() {
      axios.get('/china.json').then(res => {
         echarts.registerMap('china', res.data)
          this.$nextTick(() => {
            const map = echarts.init(this.$refs['geoEcharts'], null, {renderer:'svg'})
            const option = {
              title: {
                text:"中国地图",
                left: 'center',
                subtext: "下载链接",
                sublink: "http://datav.aliyun.com/tools/atlas/#&lat=30.772340792178525&lng=103.94573258937584&zoom=9.5"
              },
              // 悬浮窗
              tooltip: {
                trigger: 'item',
                formatter: function(params) {
                  console.log(2222, params);
                  return `${params.name}: ${params.value || 0}`

                }
              },
              // 图例
              visualMap: {
                min: 800,
                max: 50000,
                text: ['High', 'Low'],
                realtime: false,
                calculable: true,
                inRange: {
                    color: ['lightskyblue', 'yellow', 'orangered']
                }
              },
              geo: {
                map: 'china',
                zoom: 1,
                roam: 'move',
                nameMap: {
                  '新疆维吾尔自治区': "新疆",
                  "西藏自治区": '西藏',
                  "甘肃省": "甘肃",
                  "宁夏回族自治区": "宁夏",
                  "广西壮族自治区": "广西",
                  "内蒙古自治区": "内蒙古",
                  "香港特别行政区": "香港",
                  "澳门特别行政区": "澳门"
                },
                label: {
                  show: true,
                  color: 'black',
                  position: "inside",
                  distance: 0,
                  fontSize: 10,
                  rotate:45
                },
                // 所有地图的区域颜色
                itemStyle: {
                  areaColor: 'rgba(0,60,153,0.8)',
                  borderColor: '#02c0ff'
                },
                emphasis: {
                  itemStyle: {
                    areaColor: 'rgba(0,60,153,0.5)',
                    shadowColor: 'rgba(0,0,0,0.8)',
                    shadowBlur: 5,
                    shadowOffsetY: 5
                  }
                },
                // 针对某些区域做一些特别的样式
                // regions: [{
                //   name: '广东省',
                //   itemStyle: {
                //     areaColor: 'yellow',
                //     color: 'black',
                //     borderColor: 'pink'
                //   }
                // }]
              },  
              // 数据
              series: [
                {
                  type: 'scatter',
                  coordinateSystem: 'geo',
            	  data: [
                    {name: '江苏省', value:[120.15, 31.99, 9]}, // 值为,经纬度,数据
                    {name: '湖北省', value: [111, 31.89, 15477]},
                    {name: '四川省', value: [102.15, 31.89, 31686]},
                    {name: '浙江省', value: [120.15, 29.89, 6992]},
                    {name: '山东省', value: [118.15, 36.9, 44045]}
                  ],
                  SymbolSize: 4
                },
                {
                  type: 'lines',
                  coordinateSystem: 'geo',
                  data: [
                    {coords: [[121.15,38], [111, 31.89], [100.15, 31.89],[121.15, 29.89], [105.15, 30.89]]}
                  ],
                  polyline: true, // 是否是多段线
                  lineStyle: {
                    color: {
                      type: 'radial',
                      x: 0.5,
                      y: 0.5,
                      r: 0.5,
                      colorStops: [{
                          offset: 0, color: 'red' // 0% 处的颜色
                      }, {
                          offset: 1, color: 'blue' // 100% 处的颜色
                      }],
                      global: false, // 缺省为 false
                      shadowColor: 'rgba(0, 0, 0, 0.5)',
                      shadowBlur: 10,
                      curveness: 1
                    },
                    opacity: 0.3,
                    width: 2,
                  },
                  // 线特效的配置
                  effect: {
                    show: true,
                    period: 5, // 特效动画的时间,单位为 s
                    trailLength: 1, //特效尾迹长度[0,1]值越大,尾迹越长重
                    // symbol: 'image://' + require('@/echartsMap/money.png'), // 自定义动画图标
                    symbolSize: 15, //图标大小
                    color:"red"
                  }
                }
                
              ]
            }
            map.setOption(option)
          })
      })
    }
  },
}
</script>

<style>
.geo-echart{
  height: 900px;
  width: 900px;
}
</style>

在这里插入图片描述

 到此这篇关于Vue+echarts5实现中国地图的示例代码的文章就介绍到这了,更多相关vue echarts5中国地图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue+echarts5实现中国地图的示例代码

本文链接: https://lsjlt.com/news/162800.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue+echarts5实现中国地图的示例代码
    使用echarts5.0版本实现中国地图,E charts在5.0版本之后,地图不能直接引入了,需要自己去下载。 地图文件下载地址:下载地址(http://datav.aliyun....
    99+
    2024-04-02
  • vue使用echarts绘制中国地图的实现代码
    1. 插入echarts 所需模块 import echarts from "echarts"; import 'echarts/map/js/china' // 使用中国地图需...
    99+
    2024-04-02
  • Vueecharts实现离线中国地图的示例代码(细化到省份)
    目录一、效果二、完整代码三、一些配置说明1. 颜色配置2. 省份点击事件四、关于地图中的 china.js 细节修改Vue echarts 实现离线中国地图,细化到省份 更新于 20...
    99+
    2024-04-02
  • vue+antv实现雷达图的示例代码
    一、下载依赖 npm install @antv/data-set npm install @antv/g2 二、代码实现 <template> <di...
    99+
    2024-04-02
  • Qt编写地图实现闪烁点图的示例代码
    目录一、前言二、功能特点三、体验地址四、效果图五、相关代码一、前言 Qt作为一个超大型的一站式GUI超市开发集成环境,不仅集成了大量的可视化UI组件,还提供了网络库、数据库操作、文件...
    99+
    2024-04-02
  • Java实现中国象棋的示例代码
    目录前言主要设计功能截图代码实现总结前言 中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史。由于用具简单,趣味性强,成为流行极为广泛的棋艺活动。 中国象棋...
    99+
    2024-04-02
  • QT编写地图实现在线轮廓图的示例代码
    目录一、前言二、功能特点三、体验地址四、效果图五、相关代码 一、前言 轮廓图也叫行政区划,这里的轮廓图是指百度地图的区域轮廓图,不是之前文章中提到的echart专用的轮廓图,百度地图...
    99+
    2024-04-02
  • QT编写地图实现离线轮廓图的示例代码
    目录一、前言二、功能特点三、体验地址四、效果图五、相关代码 一、前言 离线轮廓图使用起来,就没有在线轮廓图方便了,在线的可以直接传入名称拿到,离线的只能自己绘制了,一般需要用区域轮廓...
    99+
    2024-04-02
  • Qt编写地图实现省市区域图的示例代码
    目录一、前言二、功能特点三、体验地址四、效果图五、相关代码一、前言 省市区域图也可以叫省市轮廓图,就是将每个省份、市区的边界区域变成轮廓展示,只是个大概的轮廓,和真是的地图基本一致...
    99+
    2024-04-02
  • R绘制漂亮的中国地图的实现示例
    目录ggmapmaps + mapdataggplot2 + mapdataggrepelggmap 说起用R绘制中国地图,很多有经验的老司机肯定会推荐ggmap,无论是里面自带的各...
    99+
    2024-04-02
  • Vue项目实现html5图片上传的示例代码
    目录图例1.选择图片2.预览图片2.1添加图片预览代码 两种方法的对比3.裁剪图片4.上传选择图片 -> 预览图片 -> 裁剪图片 -> 上传图片 我会以...
    99+
    2024-04-02
  • QT编写地图实现设备点位的示例代码
    目录一、前言二、功能特点三、体验地址四、效果图五、相关代码一、前言 在学习JS语法的时候发现其实程序都大同小异,正所谓一通百通,熟悉各大概的语法以后基本都可以上手,和C++最大的不同...
    99+
    2024-04-02
  • django+vue实现跨域的示例代码
    目录版本django实现跨域1.安装django-cors-headers库2.修改项目配置文件项目/settings.py3.前端vue使用axios访问后端django提供的数据...
    99+
    2024-04-02
  • Vue实现骨架屏的示例代码
    vue实现页面加载占位 效果如下 思路与实现 页面加载时用户等待,此时与用户交互的方式通常有等待层、进度条、加载动画等;本次介绍加载占位,把页面即将展示的样子用css背景展示出来,...
    99+
    2023-03-19
    Vue实现骨架屏 Vue骨架屏
  • 基于Matlab实现中国象棋的示例代码
    目录设置变量绘图绘制棋盘绘制棋子棋子移动规则判断是否可以移动移动棋子吃子设置变量 nRowNum = 8; % 画布行数 nColNum = 9; % 画布列数 offset_x =...
    99+
    2024-04-02
  • vue+antv实现雷达图的示例代码怎么编写
    这篇文章给大家介绍vue+antv实现雷达图的示例代码怎么编写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、下载依赖npm install @antv/data-setnpm install @antv/g2二、代...
    99+
    2023-06-21
  • vue中使用gantt-elastic实现可拖拽甘特图的示例代码
    官方例子效果图: 可以横向以及纵向鼠标拖拽表格滑动。可以手动调整列宽等功能 1、安装gantt-elastic npm install --save gantt-elastic 2...
    99+
    2024-04-02
  • vue+axios实现图片上传识别人脸的示例代码
    目录Axios请求 Qs处理数据分析 Vant上传文件格式 完整代码 本文主要介绍了vue+axios实现图片上传识别人脸的示例代码,分享给大家,具体如下: 先看最终效果: 这里采...
    99+
    2024-04-02
  • Python实现绘制Matlab格式的地图边框的示例代码
    目录1、Python绘制色斑图2、Python绘制比例尺、指南针3、Python绘制Matlab格式的地图边框1、Python绘制色斑图 import matplotlib.pyp...
    99+
    2024-04-02
  • vue全局接入百度地图的实现示例
    目录前言一、获取ak密钥二、整合步骤总结前言 本文主要教大家如何把百度地图整合到我们的vue项目中 一、获取ak密钥 1、登录网址 https://lbsyun.baidu.com/...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作