echarts实现svg地图

链接

阿里云数据可视化平台

介绍

之前写了另一个echarts实现地图的,可以移步这里

这次是用的echarts+svg实现的,参考了echarts的这两个案例
庖丁解牛
内脏数据

代码

废话不多说,直接上代码

<template>
  <div>
    <h1>深圳罗湖区--svg地图</h1>
    <div id="main"></div>
  </div>
</template>
<script>
import * as echarts from "echarts";

import $ from "jquery";
import szmap from "../../node_modules/echarts/map/szmap.svg";
export default {
  data() {
    return {};
  },
  methods: {
    getmap() {
      var chartDom = document.getElementById("main");
      var myChart = echarts.init(chartDom);
      var option;
      $.get(szmap, function (svg) {
        // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM
        echarts.registerMap("szmap", { svg: svg });
        option = {
          tooltip: {},

          series: [
            {
              name: "szmap",
              type: "map",
              map: "szmap",
              roam: true,
              emphasis: {
                label: {
                  show: false,
                },
              },

              selectedMode: false,
              data: [
                { name: "罗湖区", value: 15 },
                { name: "宝安区", value: 35 },
              ],
            },
          ],
        };
        myChart.setOption(option);
      });
    },
  },
  mounted() {
    this.getmap();
  },
};
</script>
<style scoped>
#main {
  width: 100%;
  height: 600px;
  background-color: #ccc;
}
</style>

效果

写的粗糙了点,其他的配置参考echarts的options配置就好了
echarts实现svg地图_第1张图片

实现步骤

1、首先是拿到svg,用阿里云数据可视化平台找到要的之后下载svg
echarts实现svg地图_第2张图片
下载后,打开svg,需要手动对区域添加属性值,我这里添加的是name,这一步思考了很久,渲染上去之后不能出现对应的划分区域,脑子不太灵光,对比了两个官网的例子,发现官网的svg图都带有name属性。那就手动加吧

echarts实现svg地图_第3张图片
2、完整代码参照上面
html部分,这里有个div是用于echarts渲染的

<template>
  <div>
    <h1>深圳svg地图</h1>
    <div id="main"></div>
  </div>
</template>

js部分
获取到div,使用echarts.init初始化,

    getmap() {
      var chartDom = document.getElementById("main");
      var myChart = echarts.init(chartDom);
      var option;
      $.get(szmap, function (svg) {
        // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM
        echarts.registerMap("szmap", { svg: svg });
        option = {
          tooltip: {},

          series: [
            {
              name: "szmap",
              type: "map",
              map: "szmap",
              roam: true,
              emphasis: {
                label: {
                  show: false,
                },
              },

              selectedMode: false,
              data: [
                { name: "罗湖区", value: 15 },
                { name: "宝安区", value: 35 },
              ],
            },
          ],
        };
        myChart.setOption(option);
      });
    },

重点是这个注册地图的函数,可以参照官网的解析
echarts.registerMap(“szmap”, { svg: svg });

然后根据相同的name就可以获取到啦

你可能感兴趣的:(前端,VUE,echarts,javascript,ecmascript)