Echars 地图展示

一个 地图的 小例子  :  

1、创建文件夹  导入  echarts.js、echarts-map.js、esl.js  这三个 js  包

2、创建 jsp   以下是 代码    注视在 代码上

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!--Step:1 Import a module loader, such as esl.js or require.js-->
    <!--Step:1 引入一个模块加载器,如esl.js或者require.js-->
    <script src="js/esl.js"></script>
</head>

<body>
    <!--Step:2 Prepare a dom for ECharts which (must) has size (width & hight)-->
    <!--Step:2 为ECharts准备一个具备大小(宽高)的Dom-->
    <div id="mainMap" style="width:1100px;height:790px;border:1px solid #ccc;padding:10px;"></div>
    <script type="text/javascript">
    // Step:3 conifg ECharts's path, link to echarts.js from current page.
    // Step:3 为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需图表路径
    require.config({
        paths:{ 
            echarts:'./js/echarts',
            'echarts/chart/bar' : './js/echarts-map',
            'echarts/chart/line': './js/echarts-map',
            'echarts/chart/map' : './js/echarts-map'
        }
    });
    
    // Step:4 require echarts and use it in the callback.
    // Step:4 动态加载echarts然后在回调函数中开始使用,注意保持按需加载结构定义图表路径
    require(
        [
            'echarts',
            'echarts/chart/bar',
            'echarts/chart/line',
            'echarts/chart/map'
        ],
        function(ec) {
            // --- 地图 ---
			var ecConfig = require('echarts/config');
			var zrEvent = require('zrender/tool/event');
			var data = [                                 // 这里的 data 是显示的 地图   data是个数组
							{name: '北京',id:'100',value: Math.round(Math.random()*1000),tooltip:{trigger: 'item',formatter:'<div style="float:left;"><img width="70" height="70" src="../../../../../travel_website/images/travel_02.jpg" ></div><div style="float:left;margin-left:5px;color:#666;font-size:12px;font-weight:bold;">景点:故宫、颐和园<br/>美食:烤鸭<br/>特产:北京果脯<br/>艺术:京剧</div>',backgroundColor:'rgba(255,255,255,0.7)'}}
						];
			option = {   //在option 中  定义 这个 地图 所 需要的  属性
				tooltip : {
					trigger: 'item'
				},
				dataRange: {
					min: 0,
					max: 2500,
					text:['高','低'],           // 文本,默认为数值文本
					calculable : true,
					color:['#b1dbcb','#67be8d']
				},
				series : [   //series 也是一个 数组    具体功能看 文档API  
					{
						name: 'iphone3',
						type: 'map',
						mapType: 'china',
						itemStyle:{
							normal:{label:{show:true}},
							emphasis:{label:{show:true}}
						},
						data:data
					},
					{
						name: '随机数据',
						type: 'map',
						mapType: 'china',
						selectedMode : 'single',
						itemStyle:{
							normal:{label:{show:true}},
							emphasis:{label:{show:true}}
						},
						data:[   //这里的data 又是一个数组
							{name: 'china',value: Math.round(Math.random()*1000),tooltip:{trigger: 'item',formatter:''}}
						]
					}
				]

			};
			var myChart = ec.init(document.getElementById('mainMap'));// 加载 这个 地图

			myChart.setOption(option);  //将 option 属性  set 到 地图里 
 
 
<span style="white-space:pre">			</span>//一下是  获取 地图属性  的 方式
			var myprovince;
			var myprovince_id;
			myChart.on(ecConfig.EVENT.MAP_SELECTED,function(param){    // 这里的 MAP_SELECTED 是一个事件   可能是 地图选中事件

				var selected = param.selected;  //这里是  将选中的时间 赋值给 selected  属性
				var selectedProvince;
				var name;
				alert(option.series[0].data.length);
				for (var i = 0, l = option.series[0].data.length; i < l; i++) {
					
					name = option.series[0].data[i].name;
					
					id = option.series[0].data[i].id;
					option.series[0].data[i].selected = selected[name];  //将选中的名字 赋值 给  data中的  属性

					if (selected[name]) {  
						selectedProvince = name;    //还是  赋值
						myprovince = name;
						myprovince_id = id;
					}


				}


				if(typeof(selectedProvince)=='undefined')
				{
					selectedProvince = myprovince;
				}


				alert(myprovince_id);
				alert(selectedProvince);
				//window.open("map2_test03.html",'province_page');  // 用这种方式进行跳转
			});
        }
    );
    </script>
</body>
</html>


你可能感兴趣的:(js,map)