echarts实现地图展示

1.获取对应的区域的地图,可以在阿里云数据可视化平台获取地图文件:DataV.GeoAtlas地理小工具系列2.下载json文件引入注册,代码如下

<template>
  <div>
    <div ref="echarts" style="width: 500px; height: 500px"></div>
  </div>
</template>

<script>
import * as echarts from 'echarts'
import allAddress from '../../utils/allAddress.json' // 在阿里云数据可视化平台获取全国地图,然后下载json文件引入注册
import city from '../../utils/city' // 全国各市名称,经纬度
export default {
  data() {
    return {
      date: []
    }
  },
  created() {
    this.$nextTick(() => {
      this.play_echarts()
    })
  },
  methods: {
    play_echarts() {
      var data = [
        {
          name: '武汉市',
          value: 20
        },
        {
          name: '芜湖市',
          value: 10
        },
        {
          name: '成都市',
          value: 20
        }
      ]
      var geoCoordMap = city.city
      var convertData = function (data) {
        var res = []
        for (var i = 0; i < data.length; i++) {
          var geoCoord = geoCoordMap[data[i].name]
          if (geoCoord) {
            res.push({
              name: data[i].name,
              value: geoCoord.concat(data[i].value)
            })
          }
        }
        return res
      }
      const myChart = echarts.init(this.$refs.echarts)
      echarts.registerMap('china', { geoJSON: allAddress }) // 注册地图
      const option = {
        backgroundColor: '#d3e3fd', // 设置地图画布的背景色
        tooltip: {
          extraCssText: 'border:none', //  消除提示框颜色
          trigger: 'item',
          formatter: function (params) {
            return params.name + ' : ' + params.value[2]
          }
        },
        geo: {
          map: 'china',
          roam: true, // 是否开启鼠标缩放和平移漫游。默认不开启。开启缩放'scale',开启平移'move'。设置成 true 为都开启
          zoom: 1, // 当前视角的缩放比例
          silent: true, // 图形是否不响应和触发鼠标事件,默认为 false,即响应和触发鼠标事件。鼠标划过区块的颜色不生效
          aspectScale: 1, // 长宽比,1的含义为长宽一样,假如高为100,宽也为100;0.5的含义就是宽只有高的一半,假如高为100,宽就只有50
          label: {
            show: false, // 是否地图显示区域的文字,各省市的名字
            fontSize: '14px',
            color: '#49546B'
          },
          itemStyle: {
            normal: {
              borderColor: '#c3c8c9', // 图形的描边颜色
              borderWidth: 1.5, // 描边线宽。为 0 时无描边。
              areaColor: '#e8f2f5' // 地图区域的颜色
            },
            emphasis: {
              // 鼠标移上去区块的颜色
              areaColor: 'red',
              borderWidth: 0
            }
          }
        },
        series: [
          {
            type: 'effectScatter', // 带有涟漪特效动画的散点(气泡)
            coordinateSystem: 'geo', // 'cartesian2d'使用二维的直角坐标系。'geo'使用地理坐标系
            data: convertData(data),
            symbolSize: function (val) {
              //标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,例如 [20, 10] 表示标记宽为20,高为10。
              return val[2] / 2 //  值的大小除一个数,改变标记点的大小
            },
            rippleEffect: {
              //涟漪特效相关配置。
              period: 4, //动画的时间。
              scale: 2.5, //动画中波纹的最大缩放比例。
              brushType: 'stroke' //波纹的绘制方式,可选 'stroke' 和 'fill'。
            },
            hoverAnimation: true, // 是否开启鼠标 hover 的提示动画效果。
            label: {
              normal: {
                formatter: '{b}',
                position: 'top', // 显示位置
                show: false // 是否显示城市名标签名称
              }
            },
            itemStyle: {
              normal: {
                color: '#57cef7', // 图形样式颜色
                shadowBlur: 10, // 设置阴影的模糊度
                shadowColor: '#333' // 阴影颜色
              }
            },
            zlevel: 1
          }
        ]
      }
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option)
      window.addEventListener('resize', function () {
        myChart.resize()
      })
    }
  }
}
</script>

<style lang="less" scoped>
</style>

3.实现效果如下:

echarts实现地图的过程可以分为以下几个步骤: 1. 初始化地图:使用`initEcharts`函数来初始化地图,传入地图的名称作为参数。该函数会设置地图的一些基本属性,如缩放范围、标签样式等。 2. 渲染省级地图:通过`showProvince`函数来展示对应的省级地图。该函数会根据传入的省份名称,获取对应的地图数据,并使用`registerMap`方法注册地图数据。然后调用`initEcharts`函数来初始化地图。 3. 渲染市级地图:通过`showCitys`函数来展示对应的市级地图。该函数会根据传入的城市名称,获取对应的地图数据,并使用`registerMap`方法注册地图数据。然后调用`initEcharts`函数来初始化地图。 4. 设置地图样式:在`initEcharts`函数中,可以设置地图的样式,如边颜色、高亮颜色等。可以通过修改`itemStyle`属性来实现。 5. 导入地图插件:在父组件中,可以通过导入地图插件来使用echarts实现地图功能。可以使用`import`语句导入地图插件。 总结起来,echarts实现地图的过程包括初始化地图、渲染省级地图、渲染市级地图、设置地图样式和导入地图插件等步骤。 #### 引用[.reference_title] - *1* *2* [ECharts 实现地图功能](https://blog.csdn.net/weixin_48163734/article/details/121947881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [echarts实现地图](https://blog.csdn.net/weixin_43407815/article/details/110119947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值