vue中使用heatmapjs(结合百度地图)

百度地图怎么使用就不说了,主要讲讲这个heatmap,直接贴代码了,注释挺详细的

  //vue组件中
data(){
    return{
        heatmapOverlay:""
    }
},
mounted() {
    //引用heatmap.js
    //你也可以在index.html中直接插个  <script type="text/javascript" src="http://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js"></script>

    let script = document.createElement("script");
    script.type = "text/javascript";
    script.src =
      "http://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js";
    document.body.appendChild(script);    
    
    //创建地图,这个写自己的创建地图方法,请确认你的地图能加载出来
    this.creatMap();
    
    //一定要先让地图加载出来才加载热力图,我这里做演示直接写个setTimeout了
    setTimeout(()=>{this.getHeatmap()},2000)
 },
methods:{
    getHeatmap() {
        //请求雷达数据,雷达数据需要lng,lat,count 三种数据
      this.$http
        .get("../../../static/radar20.json")
        .then(res => {
          if (res.data.code == "success") {
            console.log("获取radar成功");
            var bigdata = res.data.data;
              
              //关键是下面的三行
              //其中map是new BMap.Map()创建的地图实例,其他的热力图属性(radius,opacity这种)可以在百度地图接口实例中调试体验,http://lbsyun.baidu.com/jsdemo.htm#c1_15
            this.heatmapOverlay = new BMapLib.HeatmapOverlay({ radius: 40,opacity:0.4});
            map.addOverlay(this.heatmapOverlay);
            this.heatmapOverlay.setDataSet({ data: bigdata, max: 20 });
              
          } else {
            console.log("err");
          }
        })
        .catch(err => {
          console.log(err);
        });
    },
}

效果图:

clipboard.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 使用 echarts 百度地图需要先引入 echarts 和百度地图JavaScript API。 1. 引入 echarts 在 Vue 可以通过 npm 安装 echarts,然后在需要使用的组件引入: ``` npm install echarts --save import echarts from 'echarts' ``` 2. 引入百度地图 JavaScript API 在 Vue 可以在 index.html 引入百度地图 JavaScript API: ``` <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=百度地图密钥"></script> ``` 注意:需要替换 ak 参数为你的百度地图密钥。 3. 在组件使用 echarts 百度地图Vue 可以通过在组件的 mounted 钩子函数初始化 echarts 实例和百度地图实例,并将百度地图实例作为参数传递给 echarts 的 setOption 方法。 ``` <template> <div id="chart"></div> </template> <script> import echarts from 'echarts' export default { mounted() { // 初始化 echarts 实例 const chart = echarts.init(document.getElementById('chart')) // 初始化百度地图实例 const bmap = new BMap.Map("chart"); bmap.centerAndZoom(new BMap.Point(116.404, 39.915), 11); bmap.addControl(new BMap.NavigationControl()); // echarts 百度地图 option 配置 const option = { bmap: { center: [116.404, 39.915], zoom: 11, roam: true, }, series: [{ type: 'scatter', coordinateSystem: 'bmap', data: [[116.404, 39.915]], symbolSize: 20, }] } // 将百度地图实例传递给 echarts 的 setOption 方法 chart.setOption(option, true, { bmap: bmap }); } } </script> ``` 上面的代码使用了一个 scatter 类型的系列,它的 coordinateSystem 设置为 bmap,这样就可以在百度地图上绘制散点图了。 注意:需要在组件销毁时调用 echarts 的 dispose 方法销毁实例,以避免内存泄漏。 ``` export default { mounted() { const chart = echarts.init(document.getElementById('chart')) // ... }, beforeDestroy() { echarts.dispose(document.getElementById('chart')) } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值