[可视化]
js组件使用echarts地图组件加载不出
情况是这样的,公司有一个业务需求,要求在地图上,点击某个区域,就跳转到相应的页面。现在现在的组件是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的问题,以至于地图未显示,但是……
后端小白啥都不会,啥都不懂,跪求前端大佬指教修改代码
免责声明:本文不代表本站立场,且不构成任何建议,请谨慎对待。
版权声明:作者保留权利,不代表本站立场。
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 编辑
yhdata_bear
显示全部楼层
发表于 2022-8-17 17:21:52
永洪tech-cp
显示全部楼层
发表于 2022-8-17 18:42:02
永洪tech-cp
显示全部楼层
发表于 2022-8-17 18:43:18
把需要用到的json文件放到本地,再改一下引用路径试试