首页 >> 大全

echarts在地图上画饼状图

2023-11-16 大全 20 作者:考证青年

说实话, 有很多的功能真的很难去实现,而且实现了也不完美;就拿今天这个主题来说,我们有时候可能会有这样的需求:

一个大企业,在全球范围内都有项目,于是要求我们做一张表报能展示全球范围内各个城市的项目以及在该项目产能占比(饼状图)。

这样的结果就是要求我们把饼状图定位到经纬度中。

先把我写的例子拿出来,然后在说一下我的思路和对这个问题的看法:



ECharts  

因为只为实现效果,所以代码写得尽可能的简单,去掉了多余的效果,效果图如下:

echarts地图上放柱状图_echarts饼状图位置_

可以看出来定位的效果就已经出来了,下面说一下思路。

_echarts地图上放柱状图_echarts饼状图位置

1、想要将饼状图定位到世界地图上,得先要有世界地图;于是,要先画 geo 背景,这样才能得到经纬去定位。

2、查看饼状图的配置项,其中涉及到定位的就是这个 了,得尝试把经纬度转化为像素值。

_echarts地图上放柱状图_echarts饼状图位置

3、查看 API 发现有这样的 API

echarts地图上放柱状图_echarts饼状图位置_

OK!所有的东西都备齐了,下面是填坑的时候了。

坑我就不说了,直接说解决方法!

从上面的整体代码中可以看出:

1、绘制了两张图,

2、一张有数据,一张没有数据并被隐藏;

我将 main2 隐藏了,但是却在它上面布了 ,而且 main、main2 上所绘 的区别在于一个有数据一个没有数据,这是因为我需要用 main2 中的 geo 给 main 中的数据一个将经纬度转化为像素值的方法,也就是下面中的 .({ : 0 }, [i].coord)

function getDe() {var ser = [];for (var i = 0; i < detail.length; i++) {ser.push({name: detail[i].name,type: 'pie',                               radius: '5%',center: myChart2.convertToPixel({ geoIndex: 0 }, detail[i].coord),data: detail[i].data,});                       }return ser;} 

之所以这样做是因为 只有在 绘制完成之后才能生效,也就是说 .({ : 0 }, [i].coord)只有在 .()之后才能接收到返回值!

最后,还是有问题的,这样定位并不支持放大缩小,希望以后 在 type:pie 中也能加上 这一项。

如果你有更好的方法,希望能给我留个地址!谢谢!

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了