vue中使用echarts的map的问题

发布于 2022-09-11 21:57:46 字数 1226 浏览 18 评论 0

使用json方式注册的,在html的页面中使用正常,但是使用vue搭建的使用就报错了。

// .html 这是可以出来地图的
var chart = echarts.init(document.getElementById("map"))

$.getJSON(/*json地址*/, function (data) {
  //注册地图
  echarts.registerMap("china", data);
  //绘制地图
  chart.setOption({
    geo: {
      map: 'china'
    }
  })
})
// .vue 这种报错了
drawMap () {
  this.$ajax.get(/*json地址*/).then(res => {
    // 注册地图
    this.$echarts.registerMap('china', res)
    // 绘制地图
    this.chart = this.$echarts.init(document.getElementById('map'))
    this.chart.setOption({
      geo: {
        map: 'china'
      }
    })
  }).catch(err => {
    console.log(err)
  })
}

报错,项目中没有这个文件,就只是请求了一个json而已,之前看到好像说echarts4内置了地图文件,难道这是内置的报错了吗?vuehtml都是使用cdn引入的echarts

<script src="https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts.js"></script>

json文件使用的都是echarts的github下的china.json

请求大佬指点~
clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

又爬满兰若 2022-09-18 21:57:46

不用get请求了,直接import进来

import 'echarts/map/js/china' // 这个是js引用
import chinaJson from 'echarts/map/json/china.json' // 这个是json引用
// 路径按你自己的来
drawMap () {
    // 注册地图
    this.$echarts.registerMap('china', chinaJson) // 如果是js引入就不需要这一行了
    // 绘制地图
    this.chart = this.$echarts.init(document.getElementById('map'))
    this.chart.setOption({
      geo: {
        map: 'china'
      }
    })
}
雨轻弹 2022-09-18 21:57:46

你把this 在drawMap这个函数中保存一下this为that在下边的this都改完that看看

风吹过旳痕迹 2022-09-18 21:57:46

我也是vue项目,今天遇到了同样的问题,我用的是get请求,其实出现问题的原因不是get请求或者是本地import的区别,而是而是要用请求到的数据res.data来绘制地图,而不是整个res,这样写就是对的this.$echarts.registerMap("china", res.data),尽量还是用get请求来获取数据,不然部署到线上会有问题的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文