1. 程式人生 > >ECHart顯示杭州區域熱力圖

ECHart顯示杭州區域熱力圖

後臺所用技術springmvc+ibatis

實現效果

程式碼實現如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="${rc.contextPath}/common/js/jquery-1.10.2.js"></script>
    <script src="${rc.contextPath}/common/plugs/echart/js/esl.js" type="text/javascript"></script>
</head>

<body>
 	
<div id="main" style="width:100%;height:350px;">  </div>

</body>



<script type="text/javascript">

	require.config({
		paths:{ 
		 'echarts': '${rc.contextPath}/common/plugs/echart/js/echarts-map'
		}
	});

	// 作為入口
	require(
    [
        'echarts',
		 'echarts/chart/map'
    ], 
    function (ec) {
    	var myChart = ec.init(document.getElementById('main'));
        
        var cityMap = {
		    "杭州市": "330100"
		};
		var placeList = [
			{name:'西湖區', geoCoord:[120.13, 30.27],count:$!{xh}},
			{name:'上城區', geoCoord:[120.17, 30.25],count:$!{sc}},
			{name:'下城區', geoCoord:[120.17, 30.28],count:$!{xc}},
			{name:'江乾區', geoCoord:[120.20, 30.27],count:$!{jg}},
			{name:'拱墅區', geoCoord:[120.13, 30.32],count:$!{gs}},
			{name:'濱江區', geoCoord:[120.20, 30.20],count:$!{bj}},
			{name:'蕭山區', geoCoord:[120.27, 30.17],count:$!{xs}},
			{name:'餘杭區', geoCoord:[120.30, 30.42],count:$!{yh}},
			{name:'桐廬縣', geoCoord:[119.67, 29.80],count:$!{tl}},
			{name:'淳安縣', geoCoord:[119.03, 29.60],count:$!{ca}},
			{name:'建德市', geoCoord:[119.28, 29.48],count:$!{jd}},
			{name:'富陽市', geoCoord:[119.95, 30.05],count:$!{fy}},
			{name:'臨安市', geoCoord:[119.72, 30.23],count:$!{la}}
		];
        option = {
		    tooltip : {
		        trigger: 'item',
		        formatter: '{b}'
		    },
			
		    series : [
		        {
		            name: '杭州市地圖',
		            type: 'map',
		            mapType: '杭州市',
		            roam:true,
		            itemStyle:{
		                normal:{label:{show:true}},
		                emphasis:{label:{show:true}}
		            },
		            data:[],
					markPoint : {
						symbol:'Circle',
		                symbolSize: 0.3,
		                large: true,
		                effect : {
		                    show: true
		                },
						itemStyle:{
						  normal:{color:"#FF3300"}
						},
		                data : (function(){
		                	var data = [];
		                	for(var j=0;j<placeList.length;j++){
		                    	
		                    	var len = placeList[j].count;
								var x = parseInt(4*Math.random())%4;
		                    	var geoCoord = placeList[j].geoCoord;
		                    	while(len--) {
									if(x==0){
										data.push({
											name : placeList[j].name + len,
											value : 2000,
											geoCoord : [
												geoCoord[0] + Math.random()*0.05,
												geoCoord[1] + Math.random()*0.05
											]
										})
									}
									if(x==1){
										data.push({
											name : placeList[j].name + len,
											value : 2000,
											geoCoord : [
												geoCoord[0] + Math.random()*0.05,
												geoCoord[1] - Math.random()*0.05
											]
										})
									}
									if(x==2){
										data.push({
											name : placeList[j].name + len,
											value : 2000,
											geoCoord : [
												geoCoord[0] - Math.random()*0.05,
												geoCoord[1] - Math.random()*0.05
											]
										})
									}
									if(x==3){
										data.push({
											name : placeList[j].name + len,
											value : 2000,
											geoCoord : [
												geoCoord[0] + Math.random()*0.05,
												geoCoord[1] - Math.random()*0.05
											]
										})
									} 
		                    	}
		                    }
		                    
		                    return data;
		                })()
		            }
		        }
		    ],
		    backgroundColor: '#fffff'
        };            
        var curIndx = 0;
		var mapType = [];
		var mapGeoData = require('echarts/util/mapData/params');
		
		for (var city in cityMap) {
		    mapType.push(city);
		    // 自定義擴充套件圖表型別
		    mapGeoData.params[city] = {
		        getGeoJson: (function (c) {
		            var geoJsonName = cityMap[c];
		            return function (callback) {
		                $.getJSON('${rc.contextPath}/common/plugs/echart/js/' + geoJsonName + '.json', callback);
		            }
		        })(city)
		    }
		}
		
		var ecConfig = require('echarts/config');
		var zrEvent = require('zrender/tool/event');
		
                 
        myChart.setOption(option);  
    }  
);  
</script>

</html>

前臺所需要的js,前往