关于echarts自定义合并中国地图分区展示的问题

其实为了自己能够记住所遇到的问题,然后也是为了以后方便查找,开始决定尝试第一次写自己的博客。当然很多东西也是自己查找借鉴他人才最终解决的问题,所以在此也非常感谢他人的分享。本人前端小白一个,半路转行从事前端,希望以后能在这条路上一直走下去。

正题:因公司需求,需要对中国地图进行分区展示,而且是公司自己内部自定义的分区。

在此感谢https://blog.csdn.net/weixin_33743661/article/details/93469931的分享。

说说我的问题:

1.在引入China.json 文件是,因为是下载到本地,如果直接引入会报错,大致的意思是,如果直接采用get或者getJSON方式获取china.json 会报错,chrome在读取本地相对路径脚本时,禁止向第三方请求数据。 (只要是通过file://方式访问,或者直接拖进浏览器访问,都叫本地运行)就不管本地文件、还是服务器url 文件都不行。浏览器为了同源策略,获取本地数据必须采用异步加载。

解决方法:

解决一: 
放入tomcat,然后启动server,开启服务器模式,在浏览器中通过http://localhost:8080/index.html访问,~成功访问到本地json文件。 这个肯定OK的,因为后面将成功的demo运用在项目中,完全可行。

解决二:

放入火狐浏览器或者IE浏览器,亲测不ok,可能对以前早点的版本可行,那就不知道了。

解决三:

更改chrome的设置就行。
在chrome属性设置中,添加启动参数:

window

chrome快捷方式–右键“属性”–快捷方式–目标 
--allow-file-access-from-files : 允许本地Ajax请求,也叫file协议下的Ajax请求
--enable-file-cookies : 允许chrome保存本地设置cookie 

这个方法没事,因为这个设置后,不可能要求客户也这样做。

解决4,就是我代码中采用的本地JSONP的方式解决。在echarts中下载的china.json 数据的开头,必须将数据内容用函数括起来,而且函数名dataJson()必须和问号之后的callback函数名一致。也必须和script标签里面的function dataJson(){}一致,这样才能成功获取异步操作。

毕竟觉得只是先是一个简单的demo,只想在本地试试可行否,不想放在服务器上。

 

 

你可能感兴趣的:(关于echarts自定义合并中国地图分区展示的问题)