高德地图结合echarts呼吸灯

依我司要求,需要在地图上标记上呼吸灯。但是一谷歌,发现很多都要收费的教程,(卑微在线)只好自己慢慢研究了,最终成功实现并分享和我一样的小白哦~

框架:vue-cli

效果图

在这里插入图片描述

第一步:申请高德地图key值

这个的话大家,大家直接去高德地图api的官方那边申请,教程很多,我就不说啦~

第二步:在index.html中引入高德地图

  <script src="//webapi.amap.com/maps?v=1.4.15&key=你的key值&plugin=AMap.CustomLayer"></script>

第三步:下载echarts依赖,和echarts-extension-amap

下载echarts依赖:

npm install echarts --save

下载echarts-extension-amap依赖:

npm install echarts-extension-amap --save

第四步:主要代码

引入echarts呼吸灯,引入高德地图,以及设置样式(详细见代码注释):

<template>
  <div class="center">
    // 别忘了给装地图的盒子设置长、宽
    <div id="container"></div>
  </div>
</template>
<script>
import AMapLoader from '@amap/amap-jsapi-loader'
// 引入echarts
import echarts from 'echarts'
// 引入echarts-extension-amap
import 'echarts-extension-amap'
export default {
  data () {
    return {
      option: ({
        title: {
          text: "设备分布图",
          subtext: "Distribution of fire fighting equipment",
          left: "left",
        },
        tooltip: {
          trigger: "item",
        },
        // 注意:百度地图的是bmap,高德地图的是amap.不是只改一个数值就可以的哦,下载的依赖也不同
        amap: {
          center: [113.944602, 23.030528],  //地图中心坐标
          zoom: 13,  
          roam: true, 
          mapStyle: 'amap://styles/darkblue'  //高德地图的主题
        },
        series: [
          {
            name: "设备数量",
            type: "effectScatter",    //类型气泡图
            coordinateSystem: "amap",
            // 这里我放了假数据,使用的时候 直接替换就好啦
            data: [{ name: "新区", value: [21.783109, 108.379762, 13] }, { name: "佳人", value: [108.379762, 23.783109, 13] }], 
            // symbol: ,  //自定义图标
            symbolSize: function (val) {
              return val[0] / 5;
            },
            encode: {
              value: 2,
            },
            label: {
              formatter: "{b}",
              position: "right",
              show: false,
            },
            itemStyle: {
              color: "#28cf06"//标注颜色
            },
            emphasis: {
              label: {
                show: true
              }
            }
          }
        ]
      })
    }
  },
  async mounted () {  //别漏了async 哦
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('container'))

	// 这里赋值呼吸灯的数据 如:this.option.series[0].data = datas

    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(this.option)
  }
}
</script>
<style lang="less">
.center {
  display: flex;
  width: 100%;
  height: 975px;
  #container {
    height: 100%;
    width: 1568px;
  }
}
</style>
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在 Vue 中使用高德地图echarts,需要先安装相应的依赖库。在命令行中输入以下命令: ``` npm install echarts --save npm install echarts-gl --save npm install vue-amap --save ``` 安装完成后,可以在 Vue 组件中使用这些库。以下是一个简单的示例: ```html <template> <div> <div ref="mapContainer" style="width: 100%; height: 400px;"></div> <div ref="chartContainer" style="width: 100%; height: 400px;"></div> </div> </template> <script> import VueAMap from 'vue-amap' import echarts from 'echarts' import 'echarts-gl' export default { name: 'MapChart', data() { return { map: null, chart: null, } }, mounted() { // 初始化高德地图 VueAMap.initAMapApiLoader({ key: 'YOUR_AMAP_KEY', plugin: ['AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.Geolocation'], v: '1.4.4', }) this.$nextTick(() => { this.map = new VueAMap.AMap.Map(this.$refs.mapContainer, { zoom: 14, center: [116.39, 39.9], }) }) // 初始化 echarts this.$nextTick(() => { this.chart = echarts.init(this.$refs.chartContainer) this.chart.setOption({ // echarts 配置 series: [ { type: 'bar3D', data: [...], }, ], }) }) }, } </script> ``` 在这个示例中,我们通过 VueAMap 的 `initAMapApiLoader` 方法初始化了高德地图,并在 `mounted` 钩子函数中创建了一个地图实例。同时,我们通过 echarts 的 `init` 方法初始化了一个图表,并在 `mounted` 钩子函数中设置了图表的配置项。 需要注意的是,在 `mounted` 钩子函数中创建地图和图表的实例时,需要使用 `this.$nextTick` 方法,以确保在组件渲染完毕后再进行初始化操作。 以上是一个简单的示例,具体的实现方式还需要根据具体的业务需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值