vue3基于echarts使用中国地图

先看效果

1、安装echarts

npm i echarts  --save

2、  项目main.js中引入Echarts

// 引入 echarts
import * as echarts from 'echarts'
 
const app = createApp(App)
 
// 全局挂载 echarts
app.config.globalProperties.$echarts = echarts

echarts官网:Examples - Apache ECharts

3、找到地理坐标/地图的这个模型

 4、修改这个模型  框内的都可以删去,我们自己引入地图json文件

 5、引入json文件 首先打开网址 选择需要的json文件

DataV.GeoAtlas地理小工具系列 (aliyun.com)

6、将复制的文件在浏览器打开 复制所有的json代码

7、在项目中新建一个json文件夹 创建地图json文件 并且将刚才复制的json代码复制到json文件

8、引入json文件(路径一定要对)

 最后附上此页面完整代码

<script setup lang="ts">
import * as echarts from "echarts";
import { ref, onMounted } from "vue";
import china from "../json/china.json";
type EChartsOption = echarts.EChartsOption;

onMounted(() => {
  let option: EChartsOption;
  let mapDom = document.getElementById("map");
  let mapChart = echarts.init(mapDom);
  //初始化元素
  echarts.registerMap("china", china as any);
  mapChart.setOption(
    (option = {
      tooltip: {
        trigger: "item",
        formatter: "{b}<br/>{c} 111(p / km2)",
      },
      visualMap: {
        type: "piecewise",
        pieces: [{ color: "red" }],
      },
      series: [
        {
          name: "中国",
          type: "map",
          map: "china",
          label: {
            // 省份的名称是否显示
            // show: true,
            // 未选字体颜色
            color: "#fff",
            // 字体大小
            fontSize: 10,
          },
          data: [],
          itemStyle: {
            normal: {
              borderColor: "rgba(255, 255, 255, 0.4)",
              areaColor: "rgba(18,77,178,0.2)",
              borderWidth: 1,
              // 虚化程度
              shadowBlur: 1,
              shadowColor: "rgba(189,243,249)",
            },
            emphasis: {
              show: false,
              // 每个区域的颜色
              // 鼠标滑过颜色
              areaColor: "#97EFF4",
              // 鼠标滑过边框颜色
              shadowColor: "#05EFF7",
              // XY轴的偏移量
              shadowOffsetX: 5,
              shadowOffsetY: 5,

           
            },
          },
        },
      ],
    })
  );
});
</script>

<template>
  <div
    class="map"
    id="map"
    style="height: 55vw; width: 90%; margin-top: 18vw"
  ></div>
</template>

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

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值