vue借助百度地图实现炫酷的热力图效果

前言

当我们在规划旅游路线或是寻找热门商圈时,热力图无疑是一个非常有用的工具。而如何基于百度地图实现热力图,更是每位前端工程师都应该掌握的技能。本文将为大家介绍基于 vue 框架如何实现百度地图热力图,并且通过实例演示,让你轻松掌握热力图的实现方法,让你的网站更具交互性和吸引力。


实现效果

在这里插入图片描述


1. 安装 baiduMap

1.1 首先要安装百度 map

npm install vue-baidu-map --save

1.2 在 main.js 文件中引入并全局注册

import BaiduMap from 'vue-baidu-map'
Vue.use(BaiduMap, {
  // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
  ak: '你的密钥'
})

1.3 在 public 文件夹下面的 index.html 文件中添加百度地图 JavaScript API 的接口

<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=你的密钥"></script>

2. 组件中使用

属性描述
:center经纬度,可以替换成其它地区的经纬度
:zoom地图缩放的值
:scroll-wheel-zoom设置允许鼠标滚轮缩放
:map-types地图类型
:max热力最大值
:radius热力图半径
:gradient热力图渐变区间

代码实例

<template>
      <baidu-map :center="{lng:116.4, lat: 39.9}" :zoom="13" :scroll-wheel-zoom=true style="width: auto; height: 100%;">
          <!-- //是否需要全景 -->
          <bm-panorama></bm-panorama>
          <!-- //地图类型 -->
          <bm-map-type :map-types="['BMAP_NORMAL_MAP', 'BMAP_HYBRID_MAP']" anchor="BMAP_ANCHOR_TOP_LEFT"></bm-map-type>
          <bml-heatmap :data="mapList" :max="100" :radius="20" :gradient="{.5:'rgb(0, 110, 255)',.8:'rgb(15, 255, 31)',.9:'rgb(225, 75, 0)'}"></bml-heatmap>
      </baidu-map>
</template>

<script>
  import {BmlHeatmap} from 'vue-baidu-map'//引人
  export default {
    components: {//注册
      BmlHeatmap
    },
    data() {
      return {
        //模拟的经纬度及热力值数据;lng:经度 lat: 纬度 count:热力值
        mapList: [
          {"lng":116.47,"lat":39.91,"count":50},
          {"lng":116.41,"lat":39.912,"count":28},
          {"lng":116.42,"lat":39.913,"count":95},
          {"lng":116.43,"lat":39.914,"count":9},
          {"lng":116.44,"lat":39.915,"count":85},
          {"lng":116.45,"lat":39.915,"count":20},
          {"lng":116.46,"lat":39.918,"count":25},
          {"lng":116.47,"lat":39.9101,"count":70},
          {"lng":116.48,"lat":39.941,"count":32},
          {"lng":116.49,"lat":39.918,"count":50},
          {"lng":116.410,"lat":39.91,"count":100},
          {"lng":116.411,"lat":39.914,"count":90},
          {"lng":116.412,"lat":39.915,"count":80},
          {"lng":116.413,"lat":39.918,"count":20},
        ]
      }
    }
  }
</script>

去掉百度地图 logo 水印

<style scoped>
 ::v-deep .BMap_cpyCtrl {
    display: none;
  }
  ::v-deep .anchorBL {
    display: none;
  }
</style>
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水星记_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值