vue Echart热力图 百度地图

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

搬运某位兄台博客的:https://blog.csdn.net/yc_1993/article/details/52432005

页面先引入:<script src="http://api.map.baidu.com/api?v=2.0&ak=53oVIOgmSIejwV7EfphPgTynOZbIiVYu"></script>

<template>
  <div class="heatMapDom">
    <div :class="className" :id="id" :style="{height:height,width:width}"/>
  </div>
</template>
<script>
import echarts from 'echarts/lib/echarts'
require('echarts/extension/bmap/bmap')
import option from './option'

export default {
  props: {
    className: {
      type: String,
      default: 'heatMapCss'
    },
    id: {
      type: String,
      default: 'heatMap'
    },
    width: {
      type: String,
      default: '100%'
    },
    height: {
      type: String,
      default: '600px'
    }
  },
  data() {
    return {
      chart: null
    }
  },
  mounted() {
    this.init()
  },
  methods: {
    init() {
      this.chart = echarts.init(document.getElementById(this.id))
      console.log(option, '==数据')
      this.chart.setOption(option)
    }
  }
}
</script>
<style>
.heatMapDom{
  width: 100%;
  height: 600px;
  margin: 20px auto;
}
.BMap_noprint,.anchorBL{
  display: none;
}
</style>

option值:


var geoCoordMap = {
  'p1': [113.331788, 23.121235],
  'p2': [113.332788, 23.121335],
  'p3': [113.330188, 23.122135],
  'p4': [113.33128, 23.123135],
  'p5': [113.33104, 23.120135],
  'p6': [113.3342, 23.1222135],
  'p7': [113.3333, 23.1235],
  'p8': [113.332288, 23.124435],
  'p9': [113.334588, 23.120035],
  'p10': [113.333288, 23.119935],
  'p11': [113.335688, 23.11835],
  'p12': [113.337888, 23.1210135],
  'p13': [113.330188, 23.121935],
  'p14': [113.329088, 23.120135],
  'p15': [113.333988, 23.120035],
  'p16': [113.331588, 23.122235],
  'p17': [113.331688, 23.121335],
  'p18': [113.333388, 23.124435],
  'p19': [113.334488, 23.125535],
  'p20': [113.335588, 23.123335],
  'p21': [113.331788, 23.121235],
  'p22': [113.332788, 23.121335],
  'p23': [113.330188, 23.122135],
  'p24': [113.33128, 23.123135],
  'p25': [113.33104, 23.120135],
  'p26': [113.3342, 23.1222135],
  'p27': [113.3333, 23.1235],
  'p28': [113.332288, 23.124435],
  'p29': [113.334588, 23.120035],
  'p30': [113.333288, 23.119935],
  'p31': [113.335688, 23.11835],
  'p32': [113.337888, 23.1210135],
  'p33': [113.330188, 23.121935],
  'p34': [113.329088, 23.120135],
  'p35': [113.333988, 23.120035],
  'p36': [113.331588, 23.122235],
  'p37': [113.331688, 23.121335],
  'p38': [113.333388, 23.124435],
  'p39': [113.334488, 23.125535],
  'p40': [113.335588, 23.123335]
}
var value = [
  { name: 'p1', value: 100 },
  { name: 'p2', value: 120 },
  { name: 'p3', value: 130 },
  { name: 'p4', value: 122 },
  { name: 'p5', value: 144 },
  { name: 'p6', value: 100 },
  { name: 'p7', value: 156 },
  { name: 'p8', value: 199 },
  { name: 'p9', value: 122 },
  { name: 'p10', value: 100 },
  { name: 'p11', value: 140 },
  { name: 'p12', value: 140 },
  { name: 'p13', value: 143 },
  { name: 'p14', value: 199 },
  { name: 'p15', value: 111 },
  { name: 'p16', value: 133 },
  { name: 'p17', value: 155 },
  { name: 'p18', value: 135 },
  { name: 'p19', value: 210 },
  { name: 'p20', value: 229 },
  { name: 'p21', value: 100 },
  { name: 'p22', value: 120 },
  { name: 'p23', value: 130 },
  { name: 'p24', value: 122 },
  { name: 'p25', value: 144 },
  { name: 'p26', value: 100 },
  { name: 'p27', value: 156 },
  { name: 'p28', value: 199 },
  { name: 'p29', value: 122 },
  { name: 'p30', value: 100 },
  { name: 'p31', value: 100 },
  { name: 'p32', value: 120 },
  { name: 'p33', value: 130 },
  { name: 'p34', value: 122 },
  { name: 'p35', value: 144 },
  { name: 'p36', value: 100 },
  { name: 'p37', value: 156 },
  { name: 'p38', value: 199 },
  { name: 'p39', value: 122 },
  { name: 'p40', value: 100 }
]

var convertData = function(data, n) {
  var res = []
  for (var i = 0; i < data.length; i++) {
    var geoCoord = geoCoordMap[data[i].name]
    if (geoCoord) {
      res.push(geoCoord.concat(data[i].value + (Math.random() - 0.5) * n))
    }
  }
  return res
}
var title = 'xx洲-xx城市司机人数分布图'
var bmap = {
  center: [113.331788, 23.124235]
}
var timeline = {
  autoPlay: true,
  data: ['7:00', '8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00']
}
var options = [
  {
    series: [{
      data: convertData(value, 100)
    }]
  },
  {
    series: [{
      data: convertData(value, 200)
    }]
  },
  {
    series: [{
      data: convertData(value, 300)
    }]
  },
  {
    series: [{
      data: convertData(value, 400)
    }]
  },
  {
    series: [{
      data: convertData(value, 500)
    }]
  },
  {
    series: [{
      data: convertData(value, 600)
    }]
  },
  {
    series: [{
      data: convertData(value, 900)
    }]
  },
  {
    series: [{
      data: convertData(value, 700)
    }]
  },
  {
    series: [{
      data: convertData(value, 600)
    }]
  },
  {
    series: [{
      data: convertData(value, 500)
    }]
  },
  {
    series: [{
      data: convertData(value, 300)
    }]
  }
]

export default {
  baseOption: {
    title: {
      text: title,
      left: 'center',
      top: 10,
      textStyle: {
        color: '#66b1ff',
        fontSize: 20,
        fontWeight: 'bolder'
      }
    },
    timeline: {
      bottom: 10,
      autoPlay: timeline.autoPlay,
      data: timeline.data,
      axisType: 'category',
      padding: [5, 5, 5, 5],
      playInterval: 1500,
      lineStyle: { color: 'white' },
      controlPosition: 'right',
      controlStyle: {
        color: '#ffffff',
        borderColor: '#ffffff'
      },
      label: {
        normal: {
          textStyle: {
            color: 'white',
            fontSize: 13,
            fontWeight: 'bolder'
          }
        }
      }
    },
    bmap: {
      center: bmap.center,
      zoom: 16,
      roam: true,
      mapStyle: {
        styleJson: [
          {
            'featureType': 'land', // 调整土地颜色
            'elementType': 'geometry',
            'stylers': {
              'color': '#081734'
            }
          },
          {
            'featureType': 'building', // 调整建筑物颜色
            'elementType': 'geometry',
            'stylers': {
              'color': '#04406F'
            }
          },
          {
            'featureType': 'building', // 调整建筑物标签是否可视
            'elementType': 'labels',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'highway', // 调整高速道路颜色
            'elementType': 'geometry',
            'stylers': {
              'color': '#015B99'
            }
          },
          {
            'featureType': 'highway', // 调整高速名字是否可视
            'elementType': 'labels',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'arterial', // 调整一些干道颜色
            'elementType': 'geometry',
            'stylers': {
              'color': '#003051'
            }
          },
          {
            'featureType': 'arterial',
            'elementType': 'labels',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'green',
            'elementType': 'geometry',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'water',
            'elementType': 'geometry',
            'stylers': {
              'color': '#044161'
            }
          },
          {
            'featureType': 'subway', // 调整地铁颜色
            'elementType': 'geometry.stroke',
            'stylers': {
              'color': '#003051'
            }
          },
          {
            'featureType': 'subway',
            'elementType': 'labels',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'railway',
            'elementType': 'geometry',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'railway',
            'elementType': 'labels',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'all', // 调整所有的标签的边缘颜色
            'elementType': 'labels.text.stroke',
            'stylers': {
              'color': '#313131'
            }
          },
          {
            'featureType': 'all', // 调整所有标签的填充颜色
            'elementType': 'labels.text.fill',
            'stylers': {
              'color': '#FFFFFF'
            }
          },
          {
            'featureType': 'manmade',
            'elementType': 'geometry',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'manmade',
            'elementType': 'labels',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'local',
            'elementType': 'geometry',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'local',
            'elementType': 'labels',
            'stylers': {
              'visibility': 'off'
            }
          },
          {
            'featureType': 'subway',
            'elementType': 'geometry',
            'stylers': {
              'lightness': -65
            }
          },
          {
            'featureType': 'railway',
            'elementType': 'all',
            'stylers': {
              'lightness': -40
            }
          },
          {
            'featureType': 'boundary',
            'elementType': 'geometry',
            'stylers': {
              'color': '#8b8787',
              'weight': '1',
              'lightness': -29
            }
          }]
      }
    },
    visualMap: {
      min: 0,
      max: 500,
      splitNumber: 5,
      inRange: {
        color: ['blue', 'green', 'yellow', 'red']
      },
      textStyle: {
        color: '#fff',
        fontWeight: 'bolder'
      },
      bottom: 10,
      left: 'right',
      right: 20
    },
    series: [{
      type: 'heatmap',
      mapType: 'world',
      coordinateSystem: 'bmap',
      blurSize: 50
    }]
  },
  options: options
}

 

echarts地图+热力 综合了网上的大佬的概述,做了一下比较亲民的优化,json文件可以在下面的链接上定制,经纬度可以用百度地图的坐标拾取器和获取,图中以青岛为例,感谢大佬们的之前的贡献,可以让后来人用上现成的,话不多说,贴代码。Make A PieGallery - 分享你的可视化作品https://www.makeapie.com/editor.html?c=xmCAi_XNuJ <!DOCTYPE html> <html lang="en"> <head> <meta char 阅读详情

相关推荐

echarts实现GIS可视化——热力

看一下热力图实现的案例: 效果图: 示例代码&注释: $.get(ROOT_PATH + '/data/asset/data/hangzhou-tracks.json', function (data) { var points = [].concat.apply([], data.map(function (track) { return track.map(function (seg) { return seg.coord.concat([1])

yfm120750310的博客 8419

vue+echarts实现热力

<!-- 热力--> <template> <div id="myChart" style="width:1500px;height:700px"></div> </template> <script> import xinjiang from "echarts/map/js/province/xinjiang";...

5536

Vue项目中使用Echarts绘制热力地图

在上述代码中,我们首先通过document.getElementById获取容纳热力地图的div元素,然后使用echarts.init方法创建Echarts实例。在Vue项目中,我们可以使用Echarts库来绘制各种类型的图表,包括热力地图。本文将介绍如何在Vue项目中使用Echarts绘制热力地图,并提供相应的源代码示例。通过引入Echarts库并按照上述步骤进行配置,你可以在Vue项目中轻松地实现热力地图的可视化效果。通过以上步骤,我们就可以在Vue项目中使用Echarts绘制热力地图了。

OwmiObjective_C的博客 1036

Vue 使用 Echarts 显示热力地图信息

Vue 使用 Echarts 显示热力地图信息 主要是想实现到下面这个效果,然后省市地图根据后台返回的数据可以变换,地图热力图的形式展现,鼠标移上可以显示该地区的数据信息。 为了方便维护,我把这个地图部分使用组件剥离了出来。 <template> <div style="height: 100%;overflow: hidden;"> <div id="ditu" style="width: 117%;height:117%;float: left;margin

“跟他人学,和自己比” 4094

vue echart配合百度地图

heatmap报错Cannot read property ‘type’ of null

冰码达的博客 742

vue+vue_cli3 + typeScript + echarts热力

vue+vue_cli3+typeScript+echarts热力图准备工作 准备工作 1、申请百度地图秘钥http://lbsyun.baidu.com/apiconsole/key/create 注:如果是运行在浏览器端,Referer白名单只写 * 即可,入下图所示: 2、开始 2.1、index.html 在public/index.html中,在header中引入所需js文件 2.2...

weixin_43452622的博客 1039

百度地图api和echarts3+vue2热力图填坑

import hangzhouData from "./hangzhou-tracks.json";//杭州热力图数据 import heatmap from 'echarts/lib/chart/heatmap';//热力图 import bmap from 'echarts/extension/bmap/bmap';//bmap import echarts from 'echar...

进击的程序猿 868

Vue3+Echart+百度地图 显示热力

index.html加入 <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=<你的AK>"></script> .Vue文件引入echart bmap <template> <div :ref="refs.elChart" style="width: 100%;height: 800px;background-color:#ececec"&

JustinChia的博客 1835

推荐开源项目:Vue-Echarts-BMap - 强大的Vue.js与百度地图集成库

推荐开源项目:Vue-Echarts-BMap - 强大的Vue.js与百度地图集成库 去发现同类优质开源项目:https://gitcode.com/ 是一个基于 Vue.js 的组件库,它将流行的 ECharts 数据可视化库和百度地图(BMap)API 结合在一起,为开发者提供了一种便捷的方式来在Web应用中创建交互式的地图数据可视化。 技术分析 Vue.js 集成: Vue-Echar...

gitblog_00097的博客 687

Vue-cli3/4中使用ECharts和BMap (亲测有效)

首先 国内三大地图服务商 高德地图(AMap)腾讯地图(qqmap) 百度地图(BMap) 其中AMap 和 qqmap 使用的坐标系为 GCJ02 火星坐标系 BMap使用的坐标系为 BD09 百度坐标系,BD09是在GCJ02二次加密的基础上诞生的 下面进入正题 ...

l的博客 1135

基于Vue实现的交通时空大数据分析与挖掘源码+文档说明+界面截图

交通时空大数据项目描述项目核心是百度地图 AMap 和 echarts,用百度地图提供的 API 搭建的地图,项目中用到的有热力图、散点图和连线图,图表类型是由 echarts提供的图表进行展示,包括饼图、柱状图;安装依赖启动服务项目界面。

2301_78627004的博客 392

电商数据大屏:Vue-ECharts实战案例解析

上调试和预览特别方便。它的在线编辑器响应很快,保存后立即能看到效果,省去了本地反复打包的时间。最惊喜的是部署功能 - 完成开发后一键就能把项目发布到线上,自动生成可访问的URL,连服务器都不用自己准备。电商运营团队需要实时监控销售数据,要求大屏展示五大核心模块:实时销售趋势、商品分类占比、地域分布、销售排行,并且所有图表要实现联动筛选。对于需要展示效果的数据可视化项目,这种即时的部署能力真是太实用了。最近在做一个电商数据大屏项目,用Vue 3和ECharts折腾了好几天,终于把各种图表联动效果做出来了。

EmeraldWolf23的博客 635

java开发必备的几大学习网站

java开发必备的几大学习网站1、echarts主要功能运行环境2、百度地图 API文档3、layui4、vue 1、echarts 链接: https://echarts.apache.org/——一个基于javaScript的开源可视化图表库 ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表 主要功能 ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图热力图、线

weixin_44139519的博客 489

推荐 5 个超级炫酷的可视化项目

数据可视化就是将抽象的数据通过视觉的方式进行展示,能让用户直观的看到数据中蕴含的信息和规律。本篇文章,整理了 5 个可视化开源项目,其中包括可视化制作低代码平台、大屏可视化、地图可视化、...

公众号:Java后端 3407

vue2中echarts heatmap与百度离线地图3.0结合使用

使用过程 下载百度离线地图3.0 创建文件夹存放离线地图并引入 下载热力地图所需的json文件 创建.vue文件显示echarts,同时引入热力地图json文件

zxxAdela的博客 1141

推荐 5 个炫炫炫的可视化项目

数据可视化就是将抽象的数据通过视觉的方式进行展示,能让用户直观的看到数据中蕴含的信息和规律。本篇文章,整理了 5 个可视化开源项目,其中包括可视化制作低代码平台、大屏可视化、地图可视化、...

公众号:逛逛GitHub 2950

vue+django 美食协同过滤推荐大数据

互联网的迅猛发展给用户提供了丰富的信息资源,满足了用户在大数据时代对信息的需求,但是用户在对信息进行收集、过滤、整理和归纳时的能力是有限的,特别是在应对大量数据时,用户想要从中获得可用的信息就变得异常困难。个性化推荐系统的出现不仅能够解决这个问题,还能提高用户检索信息的覆盖面,制定个性化推荐内容。其中,推荐算法的应用是上述功能实现的重要前提条件。协同过滤推荐算法因其实现方法简单。【vue+django】美食推荐大数据协同过滤 |百度热力图|Echarts可视化 + 爬虫。

麦麦大数据 336

v-charts:基于VueECharts的强大图表组件库介绍

v-charts:基于VueECharts的强大图表组件库介绍 v-charts是由饿了么前端团队开发的图表组件库,巧妙地将Vue.js的组件化优势与ECharts的强大图表能力相结合。它解决了企业级数据可视化中面临的开发效率瓶颈、统一数据格式需求和Vue生态整合等核心问题。通过高度模块化的架构设计,v-charts提供了统一数据格式规范、简化的配置体系、丰富的图表类型支持、响应式与自适应特性,...

gitblog_00479的博客 437

基于Echarts实现可视化数据大屏百度地图医疗大数据模板

🚀 基于 Echarts 实现可视化数据大屏响应式展示效果的源码,,基于html+css+javascript+echarts制作, 可以在此基础上重新开发。本项目中使用的是echarts图表库,ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。 ⚽精彩专栏推荐👇🏻👇🏻👇🏻 ❤

七夕情人节表白网页代码100款 HTML5网页设计与制作1120款 Echarts大屏数据150款 1228
上一篇: 通过一组经纬度数据计算距离
下一篇: vuex与redux区别
Anguler_
博客等级 码龄10年 20粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值