VUE+echart绘制地图(3D)

这篇具有很好参考价值的文章主要介绍了VUE+echart绘制地图(3D)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇分享了一个伪3D的地图,这次我们搞一个真实的3D地图。
效果图如下:
VUE+echart绘制地图(3D)
要实现这种效果,首先得引入两个不同的依赖:
echarts-liquidfill和echarts-gl,引入很简单:

 npm install echarts-gl
 npm install echarts-liquidfill

引入后开始我们的编码工作:

template 部分:

<template>
<div id="map3D" style="width: auto;height: 730px;"></div>
</template>

js部分:

import * as echarts from "echarts";
import "echarts-liquidfill";
import 'echarts-gl';
import BaoJi from "../static/json/baoji.json"
export default {
  name: "map_1",
  mounted() {
  //  this.map()
    this.Map()
  },
  methods: {
    map() {
      const myChart = echarts.init(document.getElementById('map'));
      let option = null;
      const data1 = [
        { name: '陈仓区', value: 45},
        { name: '金台区', value: 0},
        { name: '凤翔区', value: 63 },
        { name: '岐山县', value: 16 },
        { name: '陇县', value: 69 },
        { name: '千阳县', value: 36 },
        { name: '麟游县', value: 46 },
        { name: '扶风县', value: 51 },
        { name: '渭滨区', value: 68 },
        { name: '凤县', value: 42 },
        { name: '太白县', value: 12 },
        { name: '眉县', value: 60 },
      ];
      echarts.registerMap('baoji', BaoJi);
      option = {
        visualMap: {
          show: false,
          min: 0,
          max: 100,
          inRange: {
            color: ['#66a6fa','#0E1E40'],
          },
        },
        tooltip: {
          borderWidth: '1',
          borderColor: 'rgba(255,255,255,0.3)',
          formatter: '{b0}: {c0}', //地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值)
          textStyle: { fontSize: '16px', color: '#4d89f8', fontFamily: 'Arial' },
          show: false,
        },
        title: {
          show: true,
          x: 'center',
          y: 'top',
          text: '宝鸡市行政区域图',
          textStyle: {
            color: '#2980b9',
            fontSize: 18,
          },
        },
        series: [
          {
            type: 'map',
            map: 'baoji',
            zoom: 1.5, // 默认显示级别
            layoutCenter: ['50%', '50%'], // 定义地图中心在屏幕中的位置
            layoutSize: '100%', // 相对于屏幕宽高的百分比
            data: data1,
            roam: 'scale', // 缩放'scale'或者平移'move'
            aspectScale: 1.5, // scale 地图的长宽比
            itemStyle: {
              normal: {
                // 静态的时候展示样式
                areaColor: '#013C62',
                shadowColor: '#013C62',
                shadowBlur: 20,
                shadowOffsetX: -5,
                shadowOffsetY: 15,
              },
              emphasis: {
                areaColor: "#f58220"    //选中区域的背景色
              },
            },
            label: {
              normal: {
                //静态的时候展示样式
                show: true, //是否显示地图省份得名称
                //  formatter: '{c0}\n{b0}',
                textStyle: {
                  color: '#dedee7', // 区域文字 颜色
                  fontSize: 15,
                  fontFamily: 'Arial',
                },
              },
              emphasis: {
                //动态展示的样式
                color: '#faf4f4', //选中区域的字体颜色
                show: true,
                textStyle:{
                  fontSize: 18,
                  fontFamily: 'Arial',
                }
              },
            },
            // 选中状态下的多边形和标签样式
            select: {
              itemStyle: {
                areaColor: "#f58220"    //选中区域的背景色
              },
              label: {
                show: true,
                color: '#308cd9',
              },
            },
          }
        ],
      };
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
      window.addEventListener("resize", function () {
        myChart.resize();
      });
    },
    Map(){
      const myCharts = echarts.init(document.getElementById('map3D'))
      myCharts.showLoading();
      echarts.registerMap('map3D', BaoJi);
      // 隐藏动画加载效果。
      myCharts.hideLoading();
      myCharts.setOption({
        geo3D: [{
          map: 'map3D',
          roam: true, //开启缩放
          shading: 'realistic',
          label: {
            show: true, //是否显示市
            color: '#faf4f4',
            fontSize: 16, //文字大小
            fontFamily: '微软雅黑',
            backgroundColor: "rgba(0,0,0,0)", //透明度0清空文字背景
          },
          regions: [
            {
              name: '渭滨区',
              // 官方文档regionHeight无效,需配置height属性
              height: 8,
              itemStyle:{
                opacity: 1, // 透明度
                borderColor: "#207fce", //分界线颜色
                areaColor: '#244779',
                color: '#244779',
                borderWidth: 0.65, //分界线宽度
              },
            },
            {
              name: '金台区',
              height: 6,
              itemStyle:{
                opacity: 1, // 透明度
                areaColor: '#2884db',
                color: '#2884db',
                borderColor: '#222222',
                borderWidth: 1,
                borderType: 'solid',
              },
            },
            {
              name: '凤县',
              height: 3,
              itemStyle:{
                opacity: 1, // 透明度
                areaColor: '#2884db',
                color: '#2884db',
                borderColor: '#222222',
                borderWidth: 1,
                borderType: 'solid',

              },
            },
            {
              name: '扶风县',
              height: 4,
              itemStyle:{
                opacity: 1, // 透明度
                borderWidth: 0.6, //分界线宽度
                borderColor: "#207fce", //分界线颜色
                areaColor: '#244779',
                color: '#244779'

              },
            },
            {
              name: '太白县',
              height: 5,
              itemStyle:{
                opacity: 1, // 透明度
                borderWidth: 0.6, //分界线宽度
                borderColor: "#207fce", //分界线颜色
                areaColor: '#244779',
                color: '#244779'

              },
            },
            {
              name: '岐山县',
              height: 6,
              itemStyle:{
                opacity: 1, // 透明度
                areaColor: '#2884db',
                color: '#2884db',
                borderColor: '#222222',
                borderWidth: 1,
                borderType: 'solid',

              },
            },
            {
              name: '眉县',
              height: 7,
              itemStyle:{
                opacity: 1, // 透明度
                areaColor: '#2884db',
                color: '#2884db',
                borderColor: '#222222',
                borderWidth: 1,
                borderType: 'solid',

              },
            },
            {
              name: '凤翔区',
              height: 8,
              itemStyle:{
                opacity: 1, // 透明度
                borderWidth: 0.6, //分界线宽度
                borderColor: "#207fce", //分界线颜色
                areaColor: '#244779',
                color: '#244779'

              },
            },
            {
              name: '千阳县',
              height: 9,
              itemStyle:{
                opacity: 1, // 透明度
                areaColor: '#2884db',
                color: '#2884db',
                borderColor: '#222222',
                borderWidth: 1,
                borderType: 'solid',

              },
            },
            {
              name: '陇县',
              height: 10,
              itemStyle:{
                opacity: 1, // 透明度
                areaColor: '#2884db',
                color: '#2884db',
                borderColor: '#222222',
                borderWidth: 1,
                borderType: 'solid',

              },
            },
            {
              name: '麟游县',
              height: 11,
              itemStyle:{
                opacity: 1, // 透明度
                borderWidth: 0.6, //分界线宽度
                borderColor: "#207fce", //分界线颜色
                areaColor: '#244779',
                color: '#244779'

              },
            },
            {
              name: '陈仓区',
              height: 5,
              itemStyle:{
                opacity: 1, // 透明度
                borderWidth: 0.6, //分界线宽度
                borderColor: "#207fce", //分界线颜色
                areaColor: '#244779',
                color: '#244779'
              },
            }
          ]
        }],
        series:[{
          boxDepth: 120, //地图倾斜度
          regionHeight: 3, //地图厚度
          roam: 'scale', // 缩放'scale'或者平移'move'
          // 真实感材质相关配置 shading: 'realistic'时有效
          realisticMaterial: {
            detailTexture: '#fff', // 纹理贴图
            textureTiling: 1, // 纹理平铺,1是拉伸,数字表示纹理平铺次数
            roughness: 0, // 材质粗糙度,0完全光滑,1完全粗糙
            metalness: 0, // 0材质是非金属 ,1金属
          },
          type: 'bar3D',
          coordinateSystem: 'geo3D',
          barSize: 0.1,
          minHeight: 1,
          silent: true,
          itemStyle: {
            color: 'orange',
            opacity: 0.9,
          },
        }]
      })
      //自适应大小
      window.onresize = () => {
        myCharts.resize()
      }
    },
  }

按照步骤来就可以实现和效果图相同的效果,同理,也可以将宝鸡市换成其他城市,但注意的是:改变城市后,对应的regions也要做出改变,负责会报错或变得奇奇怪怪。文章来源地址https://www.toymoban.com/news/detail-512689.html

到了这里,关于VUE+echart绘制地图(3D)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue下echarts的地图配置(3d悬浮效果)

    一.实现效果 图片上面的水印是公司软件自带的 二.html块代码  三.主代码  四.配置数据 toolTip配置js文件如下  geo配置数据如下:   series配置如下: 五.其他配置数据说明 1. zoomSize设置值为1.4 2.series数据格式为:[{name:\\\'四川省\\\',amount:\\\'123456\\\'},{name:\\\'海南省,amount:\\\'456\\\'}] 3.加上地图

    2024年02月11日
    浏览(42)
  • vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果

    一、实现效果 使用echarts实现省市地图绘制,你也可以绘制全国地图。 根据数据在地图显示柱状图,根据经纬度实现定位。 根据数据显示数据,涟漪动态效果。 当然你也可以根据你自己的需求,增删效果哦。 二、实现方法 1、安装echarts插件 2、获取省市json数据 https://datav.

    2024年02月03日
    浏览(42)
  • 【3d地图】vue中使用echarts geo3D

    想必对于一个前端来说,大家对echarts并不陌生,本次文章主要记录了我在vue2中使用echarts 渲染3d地图过程中的一点心得,本文代码包含详细的配置项注释~ Github项目Demo地址:点击这里 给个星星吧!!不定期更新此demo github项目启动后访问路径:“/BaseMap” 或者 点击 “基础3

    2023年04月09日
    浏览(38)
  • vue+echarts——实现3D地图+3D柱状图 效果——粗糙代码记录——技能提升

    最近看到同事在弄下面的这个图,这个图是从网上看到的,是某个网站的收费项目: 所以,最后的决定是通过 echarts 中的 3D地图 来写。但是写出来的效果不慎好看。功能是可以实现的。 初版效果图如下: 直接上代码: 我这边是存储到当前文件夹中了。。。 背景颜色是 ec

    2024年02月09日
    浏览(54)
  • 【3d地图】vue3.0中使用echarts geo3D

    之前我们已经成功在 vue2 中渲染了 echarts3D 地图,那么这次我们直接进阶成 vue3渲染 geo3D地图,并且承接上一章末尾许下的小彩蛋,我们在 3D 地图上加入, 3D 柱状图,和热力图! 本文框架基于 vue3.x setup + vite + TypeScript “ECharts是一款基于JavaScript的数据可视化图表库,提供直观

    2023年04月08日
    浏览(61)
  • vue-使用echarts+echarts-gl实现某个省份地区地图3d可视化

    前言 最近在开发中遇到一个需求,需要把一个地区地图变成3d感觉悬浮在大屏中间配合业务需求 其实echarts配合三方库就可以实现这个效果,具体细节需要自己调整 代码实现 1.下载各省份各地区地图数据-json文件-根据需求下载对应地图json数据引入即可 最新全国地图JSON数据

    2024年01月20日
    浏览(55)
  • Vue版本echarts 全国地图geo、geo3D

    需求:大屏显示3D全国地图,点击地图上标记连接到指定页面,网上资源多数不是Vue版本的,实现的方式也是由html页面修改为Vue版本 效果展示:         由于图片涉嫌违规,给大家一个自己脑补的空间~ 环境要求: 使用npm安装echarts和eacharts-gl依赖 代码: 在mounted中执行 参考

    2024年02月11日
    浏览(55)
  • vue+echart实现3d地图可拖拽、缩放、区域填充颜色(geo3D)

    功能背景 一个略微比2d地图炫酷一些的3d地图, 1、可对区域进行不同颜色填充。 2、可拖拽缩放地图 3、鼠标悬停高亮某区域。 (注意:当开启了鼠标悬停series,并高亮某个数据的时候,会导致地图的拖拽缩放出现卡顿,因为相当于是事件重叠了。。。目前还没想到好的解决方

    2024年02月13日
    浏览(45)
  • vue echarts 3D地球和世界地图的实现,并且显示不同国家的数据

    别忘记给#earth元素设置宽高 效果如下图 别忘记给#world元素设置宽高 其中注意点是world.js 下载地址 下载完成以后需要对其进行改变一下,原本是他是放在一个匿名自执行函数里面,直接在vue里面引用会报错,要把他变成 export 对象,代码片段实例 效果如下图 关键点在globe里面

    2024年02月04日
    浏览(49)
  • echarts+echarts-gl vue2制作3D地图+下钻功能+标记点功能,解决dblclick事件失效问题,解决地图下钻后边框不更新保留问题

    目录 先看实现效果:​编辑 步骤一 安装echarts和echarts-gl 步骤二  设置地图容器 在methods中设置初始化地图方法并在mounted中调用 在methods中设置初始化地图方法 在mounted中调用 打开页面效果:​编辑  步骤三 1、给地图添加双击事件dblclick 但是也出现了一个问题,和我们预想的

    2023年04月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包