前言
上周项目组要临时给客户做一个演示的原型,首页设计的是一个中国地图,本来打算用谷歌的地图,但是,做出来之后,整体的效果看起来太差了,最后就在网上搜相关的地图呈现的控件,然后就找到了这个ECharts报表呈现组件,挺不错的一个组件,而且地图数据都是离线的,真心很赞。但是,使用起来却颇费了一番工夫。所以就把使用中的一些心得体会跟大家分享一下。
1. 插件的下载
以下是ECharts的下载链接,需要注意的是ECharts内部也是依赖于另一个插件的叫ZRender,当然对于大部分图表而言不需要ZRender的,但是对于地图控件及其他复杂的呈现控件而已都是需要ZRender的。为了避免不要的问题出现,建议大家在下载ECharts时同时也要下载ZRender。
ECharts下载地址: http://echarts.baidu.com/
ZRender下载地址:http://ecomfe.github.io/zrender/index.html
下载之后解压各自的文件目录结构如下:
ECharts:
ZRender:

2. 插件的引用
首先,新建一个Web应用程序,然后添加刚刚下载的文件,具体的目录结构如下:

这里有以下几点需要说明:
1、所有的跟ECharts有关的文件全部都在echarts文件夹下
2、echarts文件夹的内容分为两部分
1) 一部分是以echarts开头的js文件,这些文件全部来自于1.中的ECharts文件目录中的js文件夹下的文件,也就是1.中的图中红框标注的js下的文件。如下:

2) 另一部分是一个名为zrender的文件夹,这里需要特别注意的是该文件夹的命名必须为zrender,因为在echarts的js文件中对zrender的引用都是以zrender为根目录的,zrender文件夹的内容即为1.中zrender文件目录中的src文件夹下的内容,如下:

3. 在页面中的具体使用
按照上边的步骤配置过之后,我们就可以在页面中引用了,这里我主要是演示地图控件的使用方式,因为地图的引用跟其他的基本图形的引用不太一样。其他的图形的呈现也会做一个简要的演示。
3.1 MapChart
首先在跟2中的echarts文件夹同一个目录(也就是Modules文件夹)下添加一个aspx页或html页,需要注意的是,如果是在aspx页中使用echarts时,需要把要渲染的div放在form标签之外,否则图形是显示不出来的。
3.1.1 在head标签中添加对echarts的引用如下:
<head runat="server"> <title></title> <script src="echarts/esljs" type="text/javascript"></script> </head>
3.1.2 在body标记中,form标记之外,添加一个div,用来做图表渲染的容器。如下:
<body> <div id="main"style="height:500px;border:1px solid #ccc;padding:10px;"></div> …………… …………… </body>
3.1.3 在3.1.3中添加的div标记下,添加如下的js代码段,如下:
<script type="text/javascript">
//为模块加载器配置echarts的路径,这里主要是配置map图表的路径,其他的图表跟map的配置还不太一样,下边也会做另一种类型的图表事例。
这里引用的主要是echarts文件夹下的echarts-map文件,而其他类型的图表引用的都是echarts文件夹下的echarts文件。
requireconfig({
paths: {
echarts:'/echarts/echarts',
'echarts/chart/map':'/echarts/echarts-map'
}
});
//动态加载echarts,在回掉函数中使用,要注意保持按需加载结构定义图表路径
require(
[
'echarts',
'echarts/chart/map'
],
function (ec) {
varmyChart=ecinit(documentgetElementById('main'));
//option主要是图标的一些设置,这不是这篇文章的重点,关于具体的设置可以参考官方的文档说明文档
option= {
title: {
text:'iphone销¨²量¢?',
subtext:'纯ä?属º?虚¨¦构1',
x:'center'
},
tooltip: {
trigger:'item'
},
legend: {
orient:'vertical',
x:'left',
data: ['iphone3','iphone4','iphone5']
},
dataRange: {
min:0,
max:2500,
text: ['高?','低̨ª'], // 文?本À?,ê?默?认¨?为a数ºy值¦Ì文?本À?
calculable:true,
textStyle: {
color:'orange'
}
},
toolbox: {
show:true,
orient:'vertical',
x:'right',
y:'center',
feature: {
mark:true,
dataView: { readOnly:false },
restore:true,
saveAsImage:true
}
},
series: [
{
name:'iphone3',
type:'map',
mapType:'china',
selectedMode: 'single',
itemStyle: {
normal: { label: { show:true },color:'#ffd700' },// for legend
emphasis: { label: { show:true} }
},
data: [
{ name:'北À¡À京?',value:Mathround(Mathrandom() *1000) },
{ name:'天¬¨¬津¨°',value:Mathround(Mathrandom() *1000) },
{ name:'上¦?海¡ê',value:Mathround(Mathrandom() *1000) },
{ name:'重?庆¨¬',value:Mathround(Mathrandom() *1000) },
{ name:'河¨®北À¡À',value:Mathround(Mathrandom() *1000) },
{ name:'河¨®南?',value:Mathround(Mathrandom() *1000) },
{ name:'云?南?',value:Mathround(Mathrandom() *1000) },
{ name:'辽¢¨¦宁t',value:Mathround(Mathrandom() *1000) },
{ name:'黑¨²龙¢¨²江-',value:Mathround(Mathrandom() *1000) },
{ name:'湖t南?',value:Mathround(Mathrandom() *1000) },
{ name:'安ã2徽?',value:Mathround(Mathrandom() *1000) },
{ name:'山¦?东?',value:Mathround(Mathrandom() *1000) },
{ name:'新?疆?',value:Mathround(Mathrandom() *1000) },
{ name:'江-苏?',value:Mathround(Mathrandom() *1000) },
{ name:'浙?江-',value:Mathround(Mathrandom() *1000) },
{ name:'江-西¡Â',value:Mathround(Mathrandom() *1000) },
{ name:'湖t北&Ag

