**

vue+openlayer+echarts 给地图点位添加柱状图

**

重点在方法addColumnChart()里,三步实现

在网上百度了很多相关文章,最终都无疾而终,只能硬着头皮自己摸索,好在功夫不负有心人,最终还是实现了在地图上,鼠标放上点位,显示对应的柱状图信息
鼠标放到点位上,会在左上角显示柱状图的数据,位置可调整

HTML

 <div id="map" ref="mapRef"></div>  地图容器<div id="chart" ref="chart"></div>  监测点的柱状图容器(  写完这篇博文之后发现了一个小问题,<div id="chart" ref="chart"></div>该div会在页面上占位置,会出现在地图容器下方,页面会有滚动条,解决办法就是给该div加一个display:none就OK了,并不会影响柱状图的定位和显示)

JS
1、引入地图跟echarts

  import Map from 'ol/Map';import Overlay from 'ol/Overlay';import View from 'ol/View';import Feature from 'ol/Feature';import Point from 'ol/geom/Point';import { Vector as VectorS, XYZ, ImageArcGISRest, TileArcGISRest } from 'ol/source';import { Tile as TileLayer, Image as ImageLayer, Vector as VectorLayer } from 'ol/layer';import { Style, Icon } from 'ol/style';import { fromLonLat} from 'ol/proj';import { toLonLat, proj } from 'ol/proj.js';import { CENTER_CENTER } from 'ol/OverlayPositioning';import { Sphere } from 'ol/sphere.js';import 'ol/ol.css';var echarts = require("echarts");

2、data
如果一个点位的柱状图上要显示多条数据,在dataColumn里的value中添加其他数据,修改echarts的相关配置即可

dataColumn:[{name: ['监测点1'],x: 109.302221,y: 27.787397,value: [3]},{name: ['监测点2'],x: 109.069956,y: 27.757735,value: [8]}, {name: ['监测点3'],x: 109.162517,y:27.671774,value: [5]},],

3、照openlayer官网,实现点位根据坐标定位到地图上去
4、mounted

this.chart = this.$refs.chart;
this.addColumnChart()

5、methods

guid () {  //为了生成不一样的id,实现每个装柱状图的盒子的唯一性var d = new Date().getTime();var guid = 'xxxx-xxxx-xxxx-xxxx'.replace(/[xy]/g,function (c) {var r = (d + Math.random() * 16) % 16 | 0;d = Math.floor(d / 16);return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);});return guid;},addColumnChart() {   //向点位添加柱状图的方法let _this=this;var html='';for (var i = 0; i < _this.dataColumn.length; i++) {     //1、循环每一条数据,生成id不同的div,//2、获取到该div,将柱状图添加上去,//3、 new Overlay,将每个柱状图添加到对应的点位上去var d = _this.dataColumn[i];var pt = fromLonLat([d.x, d.y]);var domid = "chart"+ _this.guid();    //生成不同的idhtml+="<div id='"+domid+"' style='width: 35px;height: 100px;margin-left: -18px;margin-bottom: -22px;'></div>"_this.chart.innerHTML=html;    //_this.chart为HTML里的柱状图容器,// 创建树状图var option = {};var myChart = echarts.init(document.getElementById(domid));option = {color: ['#c23531',],tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'}},xAxis: {name: '监测点名称',data: d.name,show:false},yAxis: {max:'10',name: '浓度单位(mg/kg)',show:false},series: [{name: '汞浓度(mg/kg)',type: 'bar',data: d.value}]};myChart.setOption(option);
//将柱状图添加到指定点位上去var chart = new Overlay({id: domid,positioning: "bottom-center",element: document.getElementById(domid),offset: [0, 5],stopEvent: false  //overlay也支持滚珠放大缩小});_this.map.addOverlay(chart);   //_this.map是在mounted里new Map出来的,按openlayer官网操作即可,chart.setPosition(pt);}},

vue+openlayer+echarts 在地图点位上添加柱状图相关推荐

  1. vue 中 echarts 中国地图

    我们先来看一下效果 说明:echarts 版本     "echarts": "^4.2.0-rc.2", 版本高的话,node_model 里面 没有 map ...

  2. ECharts 实现地图散点图上(转载)

    转载来源:https://efe.baidu.com/blog/echarts-map-tutorial/ ECharts 实现地图散点图(上)  小红  2016-04-28  ECharts, 教 ...

  3. Vue使用Echarts绘画地图可视化

    下载Echarts npm install echarts 效果一(城市标记点) 完整代码如下 <template><div class="chartBox"&g ...

  4. echarts gl在地球上添加发光柱

    最近搞地球效果试了很多方法,发现了一些好玩的效果 1.echarts图表根据值不同显示不同颜色 echarts有一个visualMap属性,在属性中可以实现根据值的不同,visualMap跟serie ...

  5. vue引入echarts中国地图

    需求:显示各省名字,滑过标记地显示接入数量,点击标记地 显示系统数量已接入及能跳转对应页面信息的入口: 配置: 1.安装依赖 npm install echarts -S 2.全局引入main.js ...

  6. vue使用echarts实现地图预警展示

    vue安装依赖 npm install echarts -S main.js中引用 import echarts from 'echarts' Vue.prototype.$echarts = ech ...

  7. Vue版本echarts 全国地图geo、geo3D

    需求:大屏显示3D全国地图,点击地图上标记连接到指定页面,网上资源多数不是Vue版本的,实现的方式也是由html页面修改为Vue版本 效果展示:         由于图片涉嫌违规,给大家一个自己脑补的 ...

  8. vue搭配echarts做地图散点效果以及飞机迁徙图

    记录一下自己vue项目中做的echarts地图分布散点效果 1.项目安装echarts 在已经生成的vue项目根目录运行安装echarts: npm install echarts -S 2.百度地图 ...

  9. vue集成echarts map3d地图(省市下穿)

    最近项目中需要集成echarts中的map3D地图,开发过程中遇到过不少问题,这里mark下,有遇到相应问题的伙伴欢迎一起交流 相关源码下载 1.世界地图.js,中国地图.js,中国各省份地图.js ...

最新文章

  1. iOS 性能优化总结
  2. c++ map嵌套队列(队列嵌套结构体指针)ok
  3. C语言 显示对象地址
  4. C++中数组访问操作符的重载
  5. 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
  6. MyEclipse 中自动安插作者、注释日期等快捷键方法
  7. uva12099 Bookcase ACM NWERC
  8. [RabbitMQ]常用命令
  9. volta架构 微型计算机,性能大爆炸 NVIDIA新GPU架构曝光
  10. jQuery学习笔记(二)—— 操作DOM元素
  11. C#实现超长位整数运算
  12. 向量的表示及协方差矩阵
  13. php+mysql+json android 连接wamp
  14. 字符串统计,一个中文算2个字符,一个英文算一个字符
  15. 六石管理学:从再生人有没有优势,谈软件开发
  16. Django作为微信小程序后端实践
  17. 编译报错【error】dexpreopt.sh:23 exited with status 1
  18. PHP GD库 教程
  19. inventor能画抄数图吗_画图与图纸转换 抄数
  20. 从2019年报看苏宁易购的全品类+全场景零售融合变革

热门文章

  1. [应用方案]如何入门新塘N76E003单片机
  2. 递归-八皇后问题(回溯算法)
  3. 详解升讯威在线客服系统前端多国语言实现技术:原生支持葡文、印尼文、土耳其文、俄文
  4. Arrangement for Contests
  5. 鸿蒙系统官宣不上市了么,鸿蒙系统再遭困难!官宣下调3亿装机目标:留给华为的时间不多了...
  6. R实现K均值算法,层次聚类算法与DBSCAN算法
  7. 学习cad之后体会心得
  8. ORACLE里NVL函数与NVL2函数用法
  9. Visutal Studio2022 如何使用Github copilot
  10. 新手必看 四位数码管显示原理