echarts3D地图:旋转、添加纹理图片(vue3)

news2024/11/27 21:05:43

首先安装echarts和echarts-gl依赖,注意的是,echarts-gl版本需安装低版本,且与echarts5版本不兼容,需要单独安装4版本,这里我安装的4.2.1版本。

$ npm install echarts4@npm:echarts@4.2.1 echarts-gl@1.1.0

npm可以安装echarts的不同版本,要求安装时命名不同,如下:

npm install echarts4@npm:echarts@4
npm install echarts5@npm:echarts@5

安装完成后package.json里的依赖会有如下代码:

"echarts4": "^npm:echarts@4.2.1",
"echarts-gl": "1.1.0",
"echarts": "^5.5.1",

其他vue文件正常引入echarts,地图vue文件引入echarts4:

import echarts from 'echarts4';

3D地图跟echarts图表一般的使用和配置差不多,就series中type: 'map3D'以及给地图命名map: name。

其他更多属性和配置大家可以在echarts文档进行查阅:Documentation - Apache ECharts

加载3D旋转地图完整代码:

<template>
  <div id="map-chart"></div>
</template>
<script lang="ts" setup>
import echarts from 'echarts4';
import 'echarts-gl';
import DaZhouJson from '../../../assets/datas/DaZhou.json';
import { onMounted, ref } from 'vue';
let mapOption = {};
const init = (name: String, mapJson) => {
  echarts.registerMap(name, mapJson);//注册地图
  mapOption = {
    tooltip: {
      show: false,
    },
    series: [{
      type: 'map3D',//地图类型
      map: name,
      boxWidth: 55,
      boxHeight: 6,
      boxDepth: 80,
      //材质的设置
      realisticMaterial: {
        roughness: 1,//粗糙度,0为完全光滑,1完全粗糙
        textureTiling: 32 //材质细节纹理的平铺
      },
      //光源的设置
      light: {
        main: {
          intensity: 1,//主光源强度
          shadow: true,//是否显示阴影
          alpha: 150,//主光源方向角度
          beta: 170//主光源方向角度
        },
        ambient: {
          intensity: 0//环境光强度
        }
      },
      //地面的背景颜色
      groundPlane: {
        show: false,
        color: 'transparent'
      },
      //特效设置
      postEffect: {
        enable: true//是否开启特效
      },
      //标签样式
      label: {
        show: true,
        formatter: function (params) {
          return params.name;
        },
        distance: 0,//标签距离图形的距离
        textStyle: {
          color: '#ffffff',
          fontWeight: 'normal',
          fontSize: 16,
          backgroundColor: 'rgba(255,255,255,0)'
        },
      },
      //区域的颜色
      itemStyle: {
        color: '#73a4ff',
        borderColor: 'rgb(62,215,213)',
        borderWidth: 1
      },
      //高亮样式
      emphasis: {
        label: {
          show: true,//是否显示标签
          distance: 10//标签距离图形的距离
        },
        itemStyle: {
          color: '#3b7efc',
        }
      },
      // 用于鼠标的旋转,缩放等视角控制。
      viewControl: {
        projection: "orthographic", // 投影方式,默认为透视投影'perspective',也支持设置为正交投影'orthographic'
        autoRotate: true, // 是否开启自动旋转
      }
    },
    ]};
};
onMounted(() => {
  init('DaZhou', DaZhouJson);
  var mapChart = echarts.init(document.getElementById('map-chart'));
  mapChart.setOption(mapOption);
});
</script>

<style scoped lang="less">
#map-chart {
  width: 930px;
  height: 100%;
}
</style>

效果如图:(旋转效果自行运行查看)

地图数据来自阿里云:DataV.GeoAtlas地理小工具系列 (aliyun.com)

我是直接把数据保存为文件然后引入进来的:

import DaZhouJson from '../../../assets/datas/DaZhou.json';

也可以直接远程请求地图JSON数据:

//引入axios
import axios from 'axios';


// 远程请求地图 geoJson 数据
axios.get("https://geo.datav.aliyun.com/areas_v3/bound/511700_full.json")
  .then((res) => {
    // 请求完成的地图 geoJson 数据
    let DaZhouJson = res.data;
  });

添加纹理图片:

(这里我随便找的个图片,主要想看看是否可行)

// 引入图片
import doc from '../../../assets/images/screen/layout/header.png';

// 在mapOption的series里配置
series: [{
      // 将echarts设置为纹理
      shading: 'realistic',
      realisticMaterial: {
        // 引入纹理贴图
        detailTexture: doc,
        textureTiling: 1//纹理平铺
      },
    },
    ]

效果如图:

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

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

相关文章

帧中继了解

定义 帧中继工作在OSI参考模型的数据链路层&#xff0c;是数据链路层使用简化的方法传送和交换数据单元的一种方式。 帧中继的重要特点之一是将X.25分组交换网中分组节点的差错控制、确认重传、流量控制、拥塞避免等处理过程进行简化&#xff0c;缩短了处理时间&#xff0c;这…

论文速读|通过人类远程操作的深度模仿学习框架:人型机器人的行走操纵技能

项目地址&#xff1a;Deep Imitation Learning for Humanoid Loco-manipulation through Human Teleoperation 本文详细介绍了 TRILL&#xff08;Teleoperation and Imitation Learning for Loco-manipulation&#xff09;框架&#xff0c;它是一个用于人型机器人行走操纵技能训…

华为OD机试真题 - 中文分词模拟器(Python/JS/C/C++ 2024 D卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

Spark-Yarn模式如何配置历史服务器

在Spark程序结束之后我们也想看到运行过程怎么办&#xff1f; Yarn模式下&#xff0c;通过以下步骤配置历史服务器即可: mv spark-defaults.conf.template spark-defaults.conf修改spark-default.conf 文件&#xff0c;配置日志存储路径 spark.eventLog.enabled true spark.…

pg小版本升级

文章目录 一、升级计划二、升级步骤1、安装目标版本数据库2、停止数据库实例3、备份数据目录4、调整环境变量&#xff0c;PGHOME/LD_LIRARAY_PATH5、使用新版本启动数据库 三、检查升级后的数据库 一、升级计划 pg14.0 -> pg14.9 查看当前版本信息&#xff1a; select ve…

24 - 第三方库的使用支持

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 第三方库的使用支持1.1 问题1.2 经验假设1.3 第三方库在项目中的位置 2. 第三方库的编译阶段支持3. 第三方库的链接阶段支持4. 实验 1. 第三方库的使用支持 1.1 问题 当需要使用第三方库文件时&#xff0c;编译环境中的 makef…

vue2中用到了 vuex 实现一个 留言板效果

一.效果图展示&#xff1a; 二.静态网页&#xff08;html&#xff09;代码 <template><div><h1>班级留言板</h1><ol><li v-for"(msg, index) in classmsgs" :key"index">{{ msg }} <a href"#" click.p…

折叠屏、曲面屏始终都是少数派,凭啥挑战iPhone16?

国内手机市场是一个很特别的市场&#xff0c;眼见着在处理器性能、拍照等方面都已无法再挑战苹果&#xff0c;国产手机这几年紧紧抓住折叠屏、曲面屏等差异化技术&#xff0c;试图与苹果掰手腕&#xff0c;然而从现实来看&#xff0c;这些技术其实都已失败了。 曲面屏基本可以说…

直接计算法计算CRC-32/MPEG-2

代码&#xff1a; #include<stdio.h>#define BUFFER_SIZE 114typedef unsigned int uint32_t; typedef unsigned char uint8_t;uint8_t output[BUFFER_SIZE*4]; static const uint32_t aDataBuffer[BUFFER_SIZE] {0x00001021, 0x20423063, 0x408450a5, 0x60c670e7, …

引领八亿人的“发现感”,深度旅游时代正式到来

原文链接&#xff1a;深度旅游新纪元已降临&#xff0c;我们正带领八亿旅行者开启探索之旅&#xff0c;发现世界的无限精彩 一些人在旅行时渴望探索全新的城市&#xff0c;体验那里独特的风情&#xff1b;而另一些人则被“必住榜”上的苏州平江华府酒店吸引&#xff0c;想要亲…

计算机毕业设计Spark+PyTorch股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

《SparkPyTorch股票推荐与预测系统》开题报告 一、研究背景与意义 随着信息技术的飞速发展和全球金融市场的日益繁荣&#xff0c;股票投资已成为广大投资者的重要选择之一。然而&#xff0c;股票市场的复杂性和不确定性使得投资者在做出投资决策时面临巨大的挑战。传统的股票…

ceph中pg与pool关系

在Ceph中&#xff0c;PG&#xff08;Placement Group&#xff09;和Pool是非常重要的概念&#xff0c;它们在Ceph的存储架构中扮演着关键角色。理解这些概念有助于更好地管理和优化Ceph集群。下面详细介绍这两个概念及其相互关系。 Pool&#xff08;存储池&#xff09; 定义&am…

牧野机床采集数据

牧野于1958年研发出日本第一数控铣床,并于1966年研发成功日本第一台加工中心。我在市面上常见的到的加工中心P5、P6系统,其余的就是EDM数控系统。他们两个用的不是同一种系统,采集方式也有区别,大家要注意。 牧野机床(中国)有限公司,于2002年7月23日在江苏昆山成立,是一…

sqli-labs靶场通关攻略(六十一关到六十五关)

sqli-labs-master靶场第六十一关 步骤一&#xff0c;判断闭合方式 ?id1)) -- 步骤二&#xff0c;查看数据库 ?id1)) and updatexml(1,concat(1,(select database())),1) -- 步骤三&#xff0c;查看表名 ?id-1)) and updatexml(1,concat(1,(select group_concat(table_na…

【K8s】专题十三:Kubernetes 容器运行时之 Docker 与 Containerd 详解

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 Linux 专栏 | Docker 专栏 | Kubernetes 专栏 往期精彩文章 【Docker】&#xff08;全网首发&#xff09;Kyl…

记忆化搜索【上】

509. 斐波那契数 题目链接&#xff1a;斐波那契数 递归&#xff08;暴搜&#xff09; 斐波那契数列&#xff0c;最传统的解法&#xff0c;采用递归&#xff1a; class Solution { public:int fib(int n){return dfs(n);}int dfs(int n){if(n 0 || n 1)return n;return d…

搭建核心架构网络项目(局域网)

一个基础项目的搭建 一、项目简介 这个项目主要就是最基础的一个局域网&#xff0c;模拟现实企业的网络架构&#xff0c;确保网络的安全性&#xff0c;通过VLAN划分实现不同部门或用户组的隔离等。 下图是我们这次要搭建的局域网拓扑图。&#xff08;左边为财务部门&#xff0…

[Algorithm][综合训练][kotori和n皇后][取金币][矩阵转置]详细讲解

目录 1.kotori和n皇后1.题目链接2.算法原理详解 && 代码实现 2.取金币1.题目链接2.算法原理详解 && 代码实现 3.矩阵转置1.题目链接2.算法原理详解 && 代码实现 1.kotori和n皇后 1.题目链接 kotori和n皇后 2.算法原理详解 && 代码实现 解法&…

Yapi部署文档

Yapi是高效、易用、功能强大的API管理平台&#xff0c;旨在为开发、产品、测试人员提供更优雅的接口管理服务 官网地址&#xff1a;Yapi 环境&#xff1a; l Git l NodeJs&#xff08;7.6&#xff09; l Mongodb&#xff08;2.6&#xff09; 1、 NodeJs的安装 获取资源 …

嵌入式硬件-ARM处理器架构,CPU,SOC片上系统处理器

多进程空间内部分布图&#xff1a;注意&#xff1a;创建线程实际使用兑取空间&#xff0c;栈区独立 ARM处理器架构&#xff1a; 基于ARM920T架构的CPU:以下时哈佛结构ARM920T是ARM公司的32位RISC&#xff08;精简指令集计算机&#xff09;处理器内核。它具有以下特点&#xff1…