当前位置:   article > 正文

vue使用echarts与echarts-gl实现3d地图与 3d柱状图_echarts曲线图,echarts-gl绘制3d地图+3d柱状图,echarts-liquidfi

echarts曲线图,echarts-gl绘制3d地图+3d柱状图,echarts-liquidfill实现水球图

目录

前言

一、下载echarts与echarts gl

二、vue引入与页面使用

1.引入

2.页面引入echarts-gl

三、下载地图数据

四、使用地图

1、html初始化地图放入位置:

2、data创建变量

3、创建地图

4、钩子函数渲染地图

5、渲染完成效果

总结


前言

提示:本项目使用vue,请提前搭建好vue项目

本次需求为实现一个有立体效果的地图,上面需有柱状图表示当地的数据


提示:以下是本篇文章正文内容,下面案例可供参考

一、下载echarts与echarts gl

在终端直接输入npm install echarts下载最新版本echarts

输入npm install echarts-gl 下载3d主张图插件

  1. npm install echarts
  2. npm install echarts-gl

二、vue引入与页面使用

1.引入

在main.js文件下引入echarts

代码如下(示例):

import * as echarts from 'echarts'

添加到vue原型以实现全局使用

Vue.prototype.$echarts = echarts

2.页面引入echarts-gl

代码如下(示例):

import "echarts-gl"

三、下载地图数据

前往http://datav.aliyun.com/portal/school/atlas/area_selector下载需要的地图数据

这边下载的是 四川省自贡市的地图数据,直接下载json文件即可

下载后放在项目文件夹里后,在页面引入

import zigong from '../utils/zigongshi.json'

四、使用地图

1、html初始化地图放入位置:

<div id="cityChart" ref="cityMap" :style="{width: '100%', height: '1000px'}"></div>

2、data创建变量

  1. data() {
  2. return {
  3. cityChart: ''
  4. }
  5. },

3、创建地图

  1. // 地图
  2. getCityMap() {
  3. this.cityChart = this.$echarts.init(this.$refs.cityMap);
  4. this.$echarts.registerMap("zigong", zigong);
  5. let option = {
  6. tooltip: {},
  7. textStyle: {
  8. color: '#fff', // 高亮时标签颜色变为 白色
  9. fontSize: 16, // 高亮时标签字体 变大
  10. },
  11. geo3D: {
  12. map: "zigong", //注册地图的名字
  13. roam: true, //开启鼠标缩放和平移漫游。默认不开启
  14. itemStyle: {
  15. color: "#4189f2", // 背景颜色
  16. opacity: 1, //透明度
  17. borderWidth: 0.4,
  18. borderColor: "#fff",
  19. },
  20. //地图单个板块标签样式
  21. label: {
  22. show: false,
  23. textStyle: { // 字体样式
  24. color: '#ffffff',
  25. opacity: 1,
  26. },
  27. },
  28. //鼠标放入高亮时地图板块的样式
  29. emphasis: {
  30. label: {
  31. show: false //是否显示
  32. }
  33. },
  34. // 每个地图板块单独设置背景颜色
  35. regions: [
  36. {
  37. name: '荣县',
  38. itemStyle: {
  39. color: '#5064F7'
  40. }
  41. },
  42. {
  43. name: '贡井区',
  44. itemStyle: {
  45. color: '#9E64F7'
  46. }
  47. },
  48. {
  49. name: '自流井区',
  50. itemStyle: {
  51. color: '#5A64F1'
  52. }
  53. },
  54. {
  55. name: '大安区',
  56. itemStyle: {
  57. color: '#3D9634'
  58. }
  59. },
  60. {
  61. name: '高新区',
  62. itemStyle: {
  63. color: '#DE0000'
  64. }
  65. },
  66. {
  67. name: '沿滩区',
  68. itemStyle: {
  69. color: '#F5C25F'
  70. }
  71. },
  72. {
  73. name: '富顺县',
  74. itemStyle: {
  75. color: '#228AA0'
  76. }
  77. },
  78. ],
  79. //光照阴影
  80. shading: "lambert",
  81. light: {
  82. main: {
  83. color: "#fff", //光照颜色
  84. intensity: 1, //光照强度
  85. shadow: true, //是否显示阴影
  86. alpha: 60,
  87. beta: 10,
  88. },
  89. ambient: {
  90. intensity: 0.3,
  91. },
  92. },
  93. //鼠标控制地图旋转
  94. viewControl: {
  95. projection: "perspective", // 投影方式
  96. autoRotate: false, // 是否开启地图自动旋转
  97. autoRotateDirection: "cw", // 地图自动旋转的方向
  98. autoRotateSpeed: 5, // 地图自动旋转的速度
  99. autoRotateAfterStill: 3, // 鼠标离开后多少秒自动开启旋转
  100. damping: 0, // 鼠标进行旋转,缩放等操作时延迟时间
  101. rotateSensitivity: 10, // 旋转操作的灵敏度
  102. zoomSensitivity: 10, // 缩放操作的灵敏度
  103. panSensitivity: 10, // 平移操作的灵敏度
  104. panMouseButton: "left", // 平移操作使用的鼠标按键
  105. rotateMouseButton: "left", // 旋转操作使用的鼠标按键
  106. distance: 90, // 默认视角距离主体的距离
  107. minDistance: 40, // 视角通过鼠标控制能拉近到主体的最小距离
  108. maxDistance: 145, // 视角通过鼠标控制能拉远到主体的最大距离
  109. alpha: 40, // 视角绕 x 轴,即上下旋转的角度
  110. beta: 15, // 视角绕 y 轴,即左右旋转的角度
  111. minAlpha: -720, // 上下旋转的最小 alpha 值
  112. maxAlpha: 720, // 上下旋转的最大 alpha 值
  113. minBeta: -720, // 左右旋转的最小 beta 值
  114. maxBeta: 720, // 左右旋转的最大 beta 值
  115. center: [0, 0, 0], // 视角中心点
  116. animation: true, // 是否开启动画
  117. animationDurationUpdate: 1000, // 过渡动画的时长
  118. animationEasingUpdate: "cubicInOut", // 过渡动画的缓动效果
  119. },
  120. silent: false,
  121. regionHeight: 2, //修改整个地图的三维高度
  122. },
  123. // 3d柱状图实现
  124. series: [
  125. {
  126. name: 'bar3D',
  127. type: 'bar3D',
  128. coordinateSystem: 'geo3D',
  129. barSize: 1, //柱子粗细
  130. shading: 'lambert',
  131. opacity: .7, // 柱子透明度
  132. bevelSize: 0.1,
  133. // 柱子上标签样式
  134. label: {
  135. show: true,
  136. distance: 0, //文字离柱子的距离
  137. formatter(param) {
  138. let num = param.data.value[2]
  139. return param.name + num;
  140. },
  141. // 文字样式
  142. textStyle: {
  143. color: '#fff',
  144. fontSize: 16,
  145. }
  146. },
  147. emphasis: {//柱子高亮状态的标签和样式配置。
  148. label: {
  149. show: false,
  150. textStyle: {
  151. fontSize: 20,
  152. }
  153. }
  154. },
  155. // 柱子样式
  156. itemStyle: {
  157. color: '#fff',
  158. opacity: 1
  159. },
  160. data: [
  161. {
  162. name: "荣县", //柱子的名字
  163. value: [104.41, 29.45, 1] //柱子显示在地图的位置(经纬度),柱子的值
  164. },
  165. {
  166. name: "贡井区",
  167. value: [104.63, 29.34, 2]
  168. },
  169. {
  170. name: "自流井区",
  171. value: [104.69, 29.24, 3]
  172. },
  173. {
  174. name: "大安区",
  175. value: [104.88, 29.41, 4]
  176. },
  177. {
  178. name: "沿滩区",
  179. value: [104.87, 29.27, 5]
  180. },
  181. {
  182. name: "富顺县",
  183. value: [104.99, 29.18, 6]
  184. },
  185. ]
  186. }
  187. ],
  188. }
  189. this.cityChart.setOption(option);
  190. },

4、钩子函数渲染地图

  1. mounted() {
  2. this.getCityMap()
  3. },

5、渲染完成效果


 

总结

实现完成大概就这样,希望给小伙伴带来帮助!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/82902
推荐阅读
相关标签
  

闽ICP备14008679号