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
Vue使用ECharts展示深圳地图通常涉及到以下几个步骤: 1. 引入依赖:首先需要在项目中引入ECharts库和Vue-ECharts插件。你可以通过npm安装 `echarts` 和 `vue-echarts`: ``` npm install echarts vue-echarts ``` 2. 安装并注册插件:在main.js或其他适当的地方,注册Vue-ECharts插件: ```javascript import Vue from &#39;vue&#39; import ECharts from &#39;echarts-vue&#39; Vue.use(ECharts) ``` 3. 创建组件:创建一个新的Vue组件,例如`ShenzhenMap.vue`,在这个组件中会渲染地图图表: ```html <template> <div ref="chart" style="height: 500px;"></div> </template> <script> export default { data() { return { chartData: {} // 这里放你的地图数据 } }, mounted() { this.renderChart() }, methods: { renderChart() { const myChart = this.$echarts.init(this.$refs.chart); // 使用ECharts API绘制深圳地图,你需要提供合适的地理编码数据 // 示例代码(请替换实际数据和配置选项): let geoCoordMap = { // 深圳地图坐标点数组 &#39;深圳&#39;: [114.309722, 22.543131] }; myChart.setOption({ map: &#39;深圳&#39;, roam: true, series: [{ type: &#39;scatter&#39;, coordinateSystem: &#39;geo&#39;, data: Object.values(geoCoordMap), symbol: &#39;circle&#39;, // 地图标记样式 symbolSize: 8, label: { show: true, position: &#39;right&#39;, formatter: &#39;{b}&#39; } }] }); } } } </script> ``` 4. 使用组件:在需要展示地图的地方使用这个组件,并传递任何地图相关的数据到`ChartData`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值