找文章 / 找答案
  • 发帖数2
  • 粉丝0

此人很懒,什么也没有留下

    精选问答 更多内容

    [可视化] js组件使用echarts地图组件加载不出

    yhdata_yPlp2g7t青铜一 显示全部楼层 发表于 2022-8-12 16:42:48 |阅读模式 打印 上一主题 下一主题
    20
    未解决
    情况是这样的,公司有一个业务需求,要求在地图上,点击某个区域,就跳转到相应的页面。现在现在的组件是js自定义绘图,使用的js是echarts。
    第一阶段判断是否可行时,使用了文档的第一个示例:
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));
    // 指定图表的配置项和数据
    var option = {
      title: {
        text: 'ECharts 入门示例'
      },
      tooltip: {},
      legend: {
        data: ['销量']
      },
      xAxis: {
        data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
      },
      yAxis: {},
      series: [
        {
          name: '销量',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
        }
      ]
    };
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);

    但会显示如下问题:

    查询得知找不到dom树,也是,所以就将第一行var myChart = echarts.init(document.getElementById('main')); 给删除了,成功运行。

    但轮到地图时,噩梦就开始了,让我们看看部分js代码:
    var ROOT_PATH = 'https://echarts.apache.org/examples';
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom);
    var option;

    myChart.showLoading();
    $.get(ROOT_PATH + '/data/asset/geo/USA.json', function (usaJson) {
      myChart.hideLoading();
      echarts.registerMap('USA', usaJson, {});
      option = {};
      myChart.setOption(option);
    });
    option && myChart.setOption(option);

    这次发生了其他错误,图像一直在loading界面,关闭这个小窗口后,会显示原本的问题,如图所示:
    这时将dom相关的代码删除,下述代码:
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom);
    myChart.showLoading();
    myChart.hideLoading();

    这时成功运行了,吗?嗯……就是一片空白,就没有报错,也没有出现图片,如下图的上半部分所示

    现在初步猜测是dom的问题,以至于地图未显示,但是……
    后端小白啥都不会,啥都不懂,跪求前端大佬指教修改代码






    回复

    使用道具 举报

    精彩评论5

    odinge新手上路 显示全部楼层 发表于 2022-8-12 17:55:27

    原因:可能是请求的地理信息地址跨域了,echarts官网做了跨域限制,导致后面的回调没执行到所以一致loading
    解决:可以尝试使用没限制跨域的地址或者使用请求本地地址
    如:
    myChart.showLoading();
    $.get('?proc=2&resource=(bihome下的路径)', function (usaJson) {
       myChart.hideLoading();
       echarts.registerMap('USA', usaJson, {});
       option = {};
       myChart.setOption(option);
    });



    echarts
    回复

    使用道具 举报

    心猿白银四 显示全部楼层 发表于 2022-8-17 15:28:02
    本帖最后由 心猿 于 2022-8-17 15:40 编辑
    odinge 发表于 2022-8-12 17:55
    原因:可能是请求的地理信息地址跨域了,echarts官网做了跨域限制,导致后面的回调没执行到所以一致loadin ...
    回复

    使用道具 举报

    yhdata_bear 显示全部楼层 发表于 2022-8-17 17:21:52
    您好,问题解决了吗?
    回复

    使用道具 举报

    永洪tech-cp青铜四 显示全部楼层 发表于 2022-8-17 18:42:02
    odinge 发表于 2022-8-12 17:55
    原因:可能是请求的地理信息地址跨域了,echarts官网做了跨域限制,导致后面的回调没执行到所以一致loadin ...

    跨域问题可以参考这个帖子https://club.yonghongtech.com/thread-26030-1-2.html?id=26030
    回复

    使用道具 举报

    永洪tech-cp青铜四 显示全部楼层 发表于 2022-8-17 18:43:18
    把需要用到的json文件放到本地,再改一下引用路径试试
    回复

    使用道具 举报

    高级模式
    您需要登录后才可以回帖 登录 | 免费注册

    • 官方微信

      欢迎关注永洪服务号!收费为0,价值无限

      扫码关注
    • 新浪微博

      让每位用户轻松挖掘数据价值!

      访问新浪微博
    • 智能客服
    50W

    会员等你来哦

    Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
    返回顶部