vue3绘制广东深圳地图使用echarts

在这里插入图片描述

<!-- 饼图 -->
<template>
  <el-card>
    <template #header> 地级市分类图 </template>
    <div :id="id" :class="className" :style="{ height, width }"></div>
  </el-card>
</template>

<script setup lang="ts">
import * as echarts from "echarts";
import mapGDjson from "@/views/dashboard/components/gd.json";

const props = defineProps({
  id: {
    type: String,
    default: "pieChart",
  },
  className: {
    type: String,
    default: "",
  },
  width: {
    type: String,
    default: "200px",
    required: true,
  },
  height: {
    type: String,
    default: "200px",
    required: true,
  },
});
const options = {
  backgroundColor: "#fff",
  title: {
    text: "广东地图",
    // subtext: "",
    sublink:
      "http://zh.wikipedia.org/wiki/%E9%A6%99%E6%B8%AF%E8%A1%8C%E6%94%BF%E5%8D%80%E5%8A%83#cite_note-12",
  },
  tooltip: {
    trigger: "item",
    formatter: "{b}<br/>{c} (p / km2)",
  },
  toolbox: {
    // show: flase,
    // orient: "vertical",
    // left: "right",
    // top: "center",
    // feature: {
    //   dataView: { readOnly: false },
    //   restore: {},
    //   saveAsImage: {},
    // },
  },
  // visualMap: {
  //   min: 800,
  //   max: 50000,
  //   text: ["High", "Low"],
  //   realtime: false,
  //   calculable: true,
  //   inRange: {
  //     color: ["lightskyblue", "yellow", "orangered"],
  //   },
  // },
  series: [
    {
      name: "广东地图",
      type: "map",
      map: "map_area",
      center: [114.085947, 22.547],
      zoom: 10,
      label: {
        show: true,
      },
      itemStyle: {
        normal: {
          areaColor: "#b5b8ba", //默认区块颜色#eee
          borderColor: "#ffffff", //区块描边颜色
          borderWidth: 2, //区块描边颜色宽度
        },
        emphasis: {
          areaColor: "#45ad00", //鼠标划过区块的颜色
        },
      },
      data: [
        // {
        //   value: 440300,
        //   name: "深圳市",
        //   itemStyle: { normal: { areaColor: "#409eff" } },
        // },
        // { name: "湾仔", value: 15477.48 },
        // { name: "东区", value: 31686.1 },
        // { name: "南区", value: 6992.6 },

        {
          name: "福田区",
          adcode: 440304,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
        {
          name: "罗湖区",
          adcode: 440303,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
        {
          name: "南山区",
          adcode: 440305,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
        {
          name: "宝安区",
          adcode: 440306,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
        {
          name: "龙岗区",
          adcode: 440307,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
        {
          name: "盐田区",
          adcode: 440308,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
        {
          name: "龙华区",
          adcode: 440309,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
        {
          name: "坪山区",
          adcode: 440310,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
        {
          name: "光明区",
          adcode: 440311,
          itemStyle: { normal: { areaColor: "#409eff" } },
        },
      ],
      // 自定义名称映射
      nameMap: {
        // "Central and Western": "中西区",
        // Eastern: "东区",
        // Islands: "离岛",
        // "Kowloon City": "九龙城",
        // "Kwai Tsing": "葵青",
        // "Kwun Tong": "观塘",
        // North: "北区",
        // "Sai Kung": "西贡",
        // "Sha Tin": "沙田",
        // "Sham Shui Po": "深水埗",
        // Southern: "南区",
        // "Tai Po": "大埔",
        // "Tsuen Wan": "荃湾",
        // "Tuen Mun": "屯门",
        // "Wan Chai": "湾仔",
        // "Wong Tai Sin": "黄大仙",
        // "Yau Tsim Mong": "油尖旺",
        // "Yuen Long": "元朗",
      },
    },
  ],
};

const chart = ref<any>("");

onMounted(() => {
  chart.value = markRaw(
    echarts.init(document.getElementById(props.id) as HTMLDivElement)
  );
  echarts.registerMap("map_area", mapGDjson);
  chart.value.setOption(options);

  window.addEventListener("resize", () => {
    chart.value.resize();
  });
});

onActivated(() => {
  if (chart.value) {
    chart.value.resize();
  }
});
</script>

**

gd.json数据:(由于太多,就不粘贴进来了)

https://geo.datav.aliyun.com/areas_v3/bound/440300_full.json
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue使用Echarts绘制地图可以按照以下步骤进行: 1. 首先,确保你的Vue项目已经安装了echarts依赖,可以通过运行以下命令进行安装: ```bash npm install echarts --save ``` 2. 在需要使用地图的组件中引入echarts,并创建一个容器元素用于显示地图。例如,在某个组件的template中添加以下代码: ```html <div id="map" style="width: 100%; height: 400px;"></div> ``` 3. 在组件的script部分,引入echarts并初始化地图。可以通过在mounted钩子函数中添加以下代码来实现: ```javascript import echarts from 'echarts' export default { mounted() { // 初始化echarts实例 const myChart = echarts.init(document.getElementById('map')) // 定义地图的配置项和数据 const option = { // 地图类型,可以根据需要选择具体的地图类型 series: [{ type: 'map', mapType: 'china', // 其他配置项可以根据echarts提供的API进行设置 label: { show: true }, // 数据 data: [ { name: '北京', value: 100 }, { name: '上海', value: 80 }, // ... ] }] } // 使用配置项和数据绘制地图 myChart.setOption(option) } } ``` 这样,当该组件被渲染到页面时,就会显示一个带有地图的容器。 注意:上面的代码只是一个示例,具体的地图配置项和数据需要根据你的需求进行调整。你可以查阅Echarts的官方文档以获取更多详细的用法和示例。 希望这能帮到你!如有更多问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值