vue-echarts地图使用并增加散点图显示位置

博客介绍了vue-echarts的下载方式,可通过npm或CDN下载。还说明了使用步骤,包括引入vue-echarts及地图文件、编写html和css、设置配置项等。最后提到若替换数据后点不显示,需检查经纬度是否反了。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue-echarts可以使用npm或者CDN下载

npm install echarts vue-echarts

<script src=“https://cdn.jsdelivr.net/npm/echarts@4.1.0/dist/echarts.js”>
<script src=“https://cdn.jsdelivr.net/npm/vue-echarts@4.0.2”>

1、引入vue-echarts以及地图文件

// 局部引入vue-echarts
import ECharts from 'vue-echarts';
import 'echarts/map/js/china';
import 'echarts/lib/chart/line';
import 'echarts/lib/component/polar';

2、html

<template>
  <div class="map-container">
    <div class="charts-box">
      <v-chart
        :options="options"
        auto-resize
        @click="chartClick" // 这个方法可以绑定点击地图某个点触发某些变化
        />
    </div>
  </div>
</template>

3、css

.map-container{
  width: 100%;
  height: 100%;
  .charts-box{
    width: 100%;
    height: 100%;
    .echarts {
      width: 100%;
      height: 100%;
    }
  }
}

4、配置项

options: {
    geo: { // 地理坐标系组件,地理坐标系组件用于地图的绘制,支持在地理坐标系上绘制散点图,线集
      show: true,
      map: 'china', // 中国地图,注意import引入中国地图
      roam: false, // 是否开启鼠标缩放和平移漫游
      label: { // 不显示地图上显示的各个地区的名称
        show: false
      },
      zlevel: 1,
      zoom: 1,
      itemStyle: { // 地图样式,此处把地图各区域样式设置为渐变色
        normal: {
          areaColor: {
            type: 'linear',
            x: 0,
            y: 0,
            x2: 0,
            y2: 1,
            colorStops: [
              {
                offset: 0, color: '#E4EEFF' // 0% 处的颜色
              },
              {
                offset: 1, color: '#B0CAFF' // 100% 处的颜色
              }
            ],
            global: false // 缺省为 false
          },
          borderColor: '#fff', // 各省之间的分界线颜色
          shadowColor: 'rgba(58, 120, 214, 0.14)',
          shadowBlur: 30,
          shadowOffsetY: 16,
          shadowOffsetX: 16
        }
      },
      emphasis: {
        label: {
          show: false
        },
        itemStyle: {
          areaColor: '#B0CAFF' // 高亮地块颜色
        }
      }
    },
    series: [{ // 地图上的点,使用散点图配置
      type: 'scatter',
      coordinateSystem: 'geo', // 该系列使用的坐标系
      symbolSize: 12, // 标记大小
      zlevel: 2, // 这个要比地图的大,就是geo里面的zlevel
      label: {
        show: false
      },
      tooltip: { // 提示框样式
        backgroundColor: '#232425',
        borderColor: '#008aff',
        borderWidth: 1,
        extraCssText: 'box-shadow: 0 0 5px #008aff;'
      },
      itemStyle: {
        color: (params) => { // 此处根据数据的不同情况显示不同颜色的标记
          let color = '#16D0A6'; // 默认颜色
          if (params.data.value && params.data.value[2] === 1) {
            color = '#FF6C6C';
          } else if (params.data.value && params.data.value[2] === 2) {
          	color = '#FFB36C';
          }
          return color;
        }
      },
      data: [
        { name:'惠州', value:[114.600278, 23.048611, 1, '惠州'] }, 
        { name:'遵义', value:[107.246111, 27.811111, 2, '遵义'] }, 
        { name:'大连', value:[121.539014, 38.965644, 2, '大连'] }, 
        { name:'三亚', value:[109.412272, 18.302925, 1, '三亚'] }, 
        { name:'福州', value:[119.663472, 25.934861, 0, '福州'] }
      ],
      emphasis: {
        label: {
          show: true,
          position: 'right',
          distance: 20, // 文字距离小图标的距离
          color: '#5B6479',
          fontSize: 14,
          lineHeight: 20,
          backgroundColor: '#fff',
          padding: [8, 10, 4],
          // 阴影
          shadowColor: '#C8D8FF',
          shadowBlur: 4,
          formatter: (params) => { // 根据需要配置提示内容
            let str = params.name;
            if (params.value[2] === 1) {
              str += '\n等于1';
            } else if (params.value[2] === 2) {
              str += '\n等于2';
            } else {
              str += '\n等于0';
            }
            return str;
          }
        },
        itemStyle: {
          areaColor: '#B0CAFF' // 高亮地块颜色
        }
      }
    }]
  }

效果

在这里插入图片描述

如果替换为自己的数据不显示点,检查一下是不是经纬度反了

Vue2中使用ECharts绘制地图自定义散点图的标签(label)显示片,你可以这样做: 首先,你需要安装EChartsVue-echarts ``` 然后,在你的Vue组件中,导入ECharts实例相关的地图数据,配置散点图及其label属性。例如: ```html <template> <div id="mapChart" style="height: 500px;"></div> </template> <script> import ECharts from 'echarts'; import 'echarts/map/js/china'; export default { name: 'MapScatter', data() { return { chart: null, geoCoordMap: {}, // 地图坐标映射,可以在这里加载China.js获取 }; }, mounted() { this.initChart(); }, methods: { initChart() { this.chart = new ECharts({ container: 'mapChart', // 指定表容器ID height: '100%', map: 'china', // 使用中国地图 series: [ { type: 'scatter', // 散点图 coordinateSystem: 'geo', // 指定地理坐标系统 data: [], // 根据实际数据填充 label: { // 自定义标签 show: true, position: 'top', formatter: function (params) { return `<img src="${params.name}.jpg" />`; // 这里替换为你的片URL }, rich: { img: { width: '20%', // 片宽度占整个label的百分比 height: 'auto' } } } ] } }); // 加载地图数据,设置其他选项等 this.chart.setOption({ // ... 其他配置项 }); } } }; </script> ``` 在这个例子中,`formatter`函数会动态插入片标签,其中`${params.name}.jpg`应该替换为你实际的片路径。记得将`data`数组填充你实际的散坐标对应的片名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值