当前位置: 首页 > news >正文

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

首先安装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//纹理平铺},},]

效果如图:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 信息学奥赛初赛天天练-85-NOIP2014普及组-基础题4-链表、随机存取、顺序存取、二分查找、二分比较、循环结构、图领奖
  • RabbitMQ 应用
  • 【OJ】常用技巧
  • Mysql高级教程
  • 【电子通识】洁净度等级划分及等级标准
  • 远程桌面 Rust Desk 自建服务器
  • 使用procfs
  • 文件的时间戳
  • 【区块链 + 人才服务】基于 FISCO BCOS 联盟链的电子证书认证平台 | FISCO BCOS应用案例
  • Kubernetes 1.25 containerd 环境部署 SuperMap iManager
  • 前端工程化2:从0-1的eslint插件开发教程
  • Proxfier+burpsuite抓包配置问题
  • LTspice模拟CCM和DCM模式的BUCK电路实验及参数计算
  • ​补​充​经​纬​恒​润​一​面​
  • Java安全-动态加载字节码
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • exif信息对照
  • iOS | NSProxy
  • Java多态
  • Linux后台研发超实用命令总结
  • React组件设计模式(一)
  • Sequelize 中文文档 v4 - Getting started - 入门
  • 测试开发系类之接口自动化测试
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 读懂package.json -- 依赖管理
  • 复杂数据处理
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 免费小说阅读小程序
  • 前端js -- this指向总结。
  • 突破自己的技术思维
  • 问题之ssh中Host key verification failed的解决
  • 源码安装memcached和php memcache扩展
  • 栈实现走出迷宫(C++)
  • 最近的计划
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #nginx配置案例
  • #Ubuntu(修改root信息)
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (21)起落架/可伸缩相机支架
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET CLR Hosting 简介
  • .NET Core Web APi类库如何内嵌运行?
  • .Net Core 生成管理员权限的应用程序
  • .net 无限分类
  • .Net--CLS,CTS,CLI,BCL,FCL
  • @Builder用法
  • @Mapper作用