e-chart 本地加载中国地图
<%@ page language=”java” contentType=”text/html; charset=UTF-8″
pageEncoding=”UTF-8″%>
<!DOCTYPE html>
<head>
<meta charset=”utf-8″>
<title>ECharts</title>
</head>
<body>
<!– 为ECharts准备一个具备大小(宽高)的Dom –>
<div id=”main” style=”height:800px”></div>
<!– ECharts单文件引入 –>
<script src=”${pageContext.request.contextPath}/lib/echart/dist/echarts.js”></script>
<script type=”text/javascript”>
// 路径配置
require.config({
paths: {
echarts: \’${pageContext.request.contextPath}/lib/echart/dist\’
}
});
// 使用
require(
[
\’echarts\’,
\’echarts/chart/bar\’, // 使用柱状图就加载bar模块,按需加载
\’echarts/chart/line\’, // 使用柱状图就加载line模块,按需加载
\’echarts/chart/force\’, // 使用柱状图就加载force关系网络模块,按需加载
\’echarts/chart/map\’ // 使用柱状图就加载map模块,按需加载
],
function (ec) {
// 基于准备好的dom,初始化echarts图表,ec是包含echarts的对象,但不是echarts实例
var myChart = ec.init(document.getElementById(\’main\’),\’default\’); //后面是主题,默认不添加
//myChart.showLoading();
//添加点击事件
var ecConfig = require(\’echarts/config\’);
myChart.on(ecConfig.EVENT.CLICK, eConsole);
//添加双击事件
//myChart.on(ecConfig.EVENT.DBCLICK, eConsoledb);
var option = {
title : {
text: \’iphone销量\’,//主标题
subtext: \’纯属虚构\’,//副标题
x:\’center\’//居中
},
//提示框
tooltip : {
trigger: \’item\’
},
//图例
legend: {
orient: \’vertical\’,//图例布局方式: 默认水平布局 可选为:\’horizontal\’ | \’vertical\’
x:\’left\’,//左 中 右 三个选择 left center right
y:\’top\’,//上 中 下 三个选择 top center bottom
data:[\’iphone3\’,\’iphone4\’,\’iphone5\’],//图例名
backgroundColor:\’#aaa\’,//背景色
textStyle:{color:\’#333\’}//设置文字的样式
},
//值域范围
dataRange: {
min: 0,
max: 2500,
x: \’left\’,
y: \’bottom\’,
text:[\’高\’,\’低\’], // 文本,默认为数值文本
calculable : true
},
//工具箱的使用
toolbox: {
show: true,
orient : \’vertical\’,//垂直布局
x: \’right\’,//右
y: \’center\’,//中
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
restore : {show: true},
saveAsImage : {show: true},
restore : {
show : true,
title : \’还原\’
},
dataZoom : {
show : true,
title : {
dataZoom : \’区域缩放\’,
dataZoomReset : \’区域缩放后退\’
}
}
}
},
//缩放漫游组件,仅对地图有效。
roamController: {
show: true,
x: \’right\’,
mapTypeControl: {
\’china\’: true
}
},
//驱动图表生成的数据内容数组,数组中每一项为一个系列的选项及数据,其中个别选项仅在部分图表类型中有效
series : [
{
name: \’iphone3\’,//系列名称 与legend关联
type: \’map\’,//图表类型
mapType: \’china\’,//地图类型
roam: false,
//图形样式,可设置图表内图形的默认样式和强调样式(悬浮时样式):
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{show:true}}
},
//iPhone3的全国分布数据,Math.round()是四舍五入取整
data:[
{name: \’北京\’,value: Math.round(Math.random()*1000)},
{name: \’天津\’,value: Math.round(Math.random()*1000)},
{name: \’上海\’,value: Math.round(Math.random()*1000)},
{name: \’重庆\’,value: Math.round(Math.random()*1000)},
{name: \’河北\’,value: Math.round(Math.random()*1000)},
{name: \’河南\’,value: Math.round(Math.random()*1000)},
{name: \’云南\’,value: Math.round(Math.random()*1000)},
{name: \’辽宁\’,value: Math.round(Math.random()*1000)},
{name: \’黑龙江\’,value: Math.round(Math.random()*1000)},
{name: \’湖南\’,value: Math.round(Math.random()*1000)},
{name: \’安徽\’,value: Math.round(Math.random()*1000)},
{name: \’山东\’,value: Math.round(Math.random()*1000)},
{name: \’新疆\’,value: Math.round(Math.random()*1000)},
{name: \’江苏\’,value: Math.round(Math.random()*1000)},
{name: \’浙江\’,value: Math.round(Math.random()*1000)},
{name: \’江西\’,value: Math.round(Math.random()*1000)},
{name: \’湖北\’,value: Math.round(Math.random()*1000)},
{name: \’广西\’,value: Math.round(Math.random()*1000)},
{name: \’甘肃\’,value: Math.round(Math.random()*1000)},
{name: \’山西\’,value: Math.round(Math.random()*1000)},
{name: \’内蒙古\’,value: Math.round(Math.random()*1000)},
{name: \’陕西\’,value: Math.round(Math.random()*1000)},
{name: \’吉林\’,value: Math.round(Math.random()*1000)},
{name: \’福建\’,value: Math.round(Math.random()*1000)},
{name: \’贵州\’,value: Math.round(Math.random()*1000)},
{name: \’广东\’,value: Math.round(Math.random()*1000)},
{name: \’青海\’,value: Math.round(Math.random()*1000)},
{name: \’西藏\’,value: Math.round(Math.random()*1000)},
{name: \’四川\’,value: Math.round(Math.random()*1000)},
{name: \’宁夏\’,value: Math.round(Math.random()*1000)},
{name: \’海南\’,value: Math.round(Math.random()*1000)},
{name: \’台湾\’,value: Math.round(Math.random()*1000)},
{name: \’香港\’,value: Math.round(Math.random()*1000)},
{name: \’澳门\’,value: Math.round(Math.random()*1000)}
]
},
{
name: \’iphone4\’,
type: \’map\’,
mapType: \’china\’,
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{show:true}}
},
data:[
{name: \’北京\’,value: Math.round(Math.random()*1000)},
{name: \’天津\’,value: Math.round(Math.random()*1000)},
{name: \’上海\’,value: Math.round(Math.random()*1000)},
{name: \’重庆\’,value: Math.round(Math.random()*1000)},
{name: \’河北\’,value: Math.round(Math.random()*1000)},
{name: \’安徽\’,value: Math.round(Math.random()*1000)},
{name: \’新疆\’,value: Math.round(Math.random()*1000)},
{name: \’浙江\’,value: Math.round(Math.random()*1000)},
{name: \’江西\’,value: Math.round(Math.random()*1000)},
{name: \’山西\’,value: Math.round(Math.random()*1000)},
{name: \’内蒙古\’,value: Math.round(Math.random()*1000)},
{name: \’吉林\’,value: Math.round(Math.random()*1000)},
{name: \’福建\’,value: Math.round(Math.random()*1000)},
{name: \’广东\’,value: Math.round(Math.random()*1000)},
{name: \’西藏\’,value: Math.round(Math.random()*1000)},
{name: \’四川\’,value: Math.round(Math.random()*1000)},
{name: \’宁夏\’,value: Math.round(Math.random()*1000)},
{name: \’香港\’,value: Math.round(Math.random()*1000)},
{name: \’澳门\’,value: Math.round(Math.random()*1000)}
]
},
{
name: \’iphone5\’,
type: \’map\’,
mapType: \’china\’,
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{show:true}}
},
data:[
{name: \’北京\’,value: Math.round(Math.random()*1000)},
{name: \’天津\’,value: Math.round(Math.random()*1000)},
{name: \’上海\’,value: Math.round(Math.random()*1000)},
{name: \’广东\’,value: Math.round(Math.random()*1000)},
{name: \’台湾\’,value: Math.round(Math.random()*1000)},
{name: \’香港\’,value: Math.round(Math.random()*1000)},
{name: \’澳门\’,value: Math.round(Math.random()*1000)}
]
}
]
};
// 为echarts对象加载数据
//myChart.showLoading();
myChart.setOption(option);
function eConsole(param) {
if (typeof param.seriesIndex == \’undefined\’) {
return;
}
if (param.type == \’click\’) {
alert(param.name+”*-*”+param.value);
}
}
}
);
</script>
</body>
另外:使用后台动态加载如下:
定义 数据接口:地图上iphone3 iphone4 iphone5的三个数据来源对象为 obj, obj1, obj2
var obj =[];//数据1,赋值给data
var obj1=[];//数据2 …
var obj2=[];//数据3 …
function ObjStory(name,value) //声明对象
{
this.name = name;//对象的属性有name
this.value= value; //对象的属性value
}
$.ajax({
//后台请求
url : \’${pageContext.request.contextPath}/media/getProvinceData.action\’, //TODO
data : { },
type : \’post\’,
async : false,
dataType : “json”,
success: function(data){
//debugger;
for(var i=0;i<data.length;i++)
{
//遍历后台获取到的数据 ,并将得到的数据分别赋值给新建对象的name 和value属性,最后将对象加入数组中 ,这里全国三十四个省份的数据都加入该数组
obj.push(new ObjStory(data[i].PROVINCE,data[i].IPHONE3));
obj1.push(new ObjStory(data[i].PROVINCE,data[i].IPHONE4));
obj2.push(new ObjStory(data[i].PROVINCE,data[i].IPHONE5));
}
}
})