area_echarts.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. $(function () {
  2. map();
  3. function map() {
  4. // 基于准备好的dom,初始化echarts实例
  5. var myChart = echarts.init(document.getElementById('map_1'));
  6. var data = [
  7. {name: '华南区', value: 290},//广东 value 可控制圆点大小
  8. {name: '华东区', value: 200},//江苏
  9. {name: '华西区', value: 180},//陕西
  10. {name: '华北区', value: 260}//北京
  11. ];
  12. var toolTipData = [
  13. {name:"华南区",value:[{name:"公司数量",value:195},{name:"设备数量",value:14},{name:"人员数量",value:754}]},
  14. {name:"华东区",value:[{name:"公司数量",value:75},{name:"设备数量",value:32},{name:"人员数量",value:23}]},
  15. {name:"华西区",value:[{name:"公司数量",value:21},{name:"设备数量",value:65},{name:"人员数量",value:21}]},
  16. {name:"华北区",value:[{name:"公司数量",value:1533},{name:"设备数量",value:14},{name:"人员数量",value:82}]},
  17. ];
  18. var geoCoordMap = {
  19. '华南区':[113.263802,23.138215],
  20. '华东区':[118.790825,32.061636],
  21. '华西区':[108.954065,34.3457],
  22. '华北区':[116.383491,39.921771],
  23. };
  24. var convertData = function (data) {
  25. var res = [];
  26. for (var i = 0; i < data.length; i++) {
  27. var geoCoord = geoCoordMap[data[i].name];
  28. if (geoCoord) {
  29. res.push({
  30. name: data[i].name,
  31. value: geoCoord.concat(data[i].value)
  32. });
  33. }
  34. }
  35. return res;
  36. };
  37. option = {
  38. // backgroundColor: '#404a59',
  39. /*** title: {
  40. text: '实时行驶车辆',
  41. subtext: 'data from PM25.in',
  42. sublink: 'http://www.pm25.in',
  43. left: 'center',
  44. textStyle: {
  45. color: '#fff'
  46. }
  47. },**/
  48. tooltip : {
  49. trigger: 'item',
  50. formatter: function(params) {
  51. if (typeof(params.value)[2] == "undefined") {
  52. var toolTiphtml = ''
  53. for(var i = 0;i<toolTipData.length;i++){
  54. if(params.name==toolTipData[i].name){
  55. toolTiphtml += toolTipData[i].name+':<br>'
  56. for(var j = 0;j<toolTipData[i].value.length;j++){
  57. toolTiphtml+=toolTipData[i].value[j].name+':'+toolTipData[i].value[j].value+"<br>"
  58. }
  59. }
  60. }
  61. console.log(toolTiphtml)
  62. // console.log(convertData(data))
  63. return toolTiphtml;
  64. } else {
  65. var toolTiphtml = ''
  66. for(var i = 0;i<toolTipData.length;i++){
  67. if(params.name==toolTipData[i].name){
  68. toolTiphtml += toolTipData[i].name+':<br>'
  69. for(var j = 0;j<toolTipData[i].value.length;j++){
  70. toolTiphtml+=toolTipData[i].value[j].name+':'+toolTipData[i].value[j].value+"<br>"
  71. }
  72. }
  73. }
  74. console.log(toolTiphtml)
  75. // console.log(convertData(data))
  76. return toolTiphtml;
  77. }
  78. }
  79. },
  80. geo: {
  81. map: 'china',
  82. label: {
  83. emphasis: {
  84. show: false
  85. }
  86. },
  87. roam: true,
  88. itemStyle: {
  89. normal: {
  90. areaColor: '#4c60ff',
  91. borderColor: '#002097'
  92. },
  93. emphasis: {
  94. areaColor: '#293fff'
  95. }
  96. }
  97. },
  98. series : [
  99. {
  100. name: '',
  101. type: 'effectScatter',
  102. showEffectOn: 'render',
  103. rippleEffect: {
  104. brushType: 'stroke'
  105. },
  106. coordinateSystem: 'geo',
  107. data: convertData(data),
  108. symbolSize: function (val) {
  109. return val[2] / 15;
  110. },
  111. label: {
  112. normal: {
  113. formatter: '{b}',
  114. position: 'right',
  115. show: true
  116. },
  117. emphasis: {
  118. show: true
  119. }
  120. },
  121. itemStyle: {
  122. normal: {
  123. color: '#ffeb7b'
  124. }
  125. }
  126. }
  127. /**
  128. ,
  129. {
  130. name: 'Top 5',
  131. type: 'effectScatter',
  132. coordinateSystem: 'geo',
  133. data: convertData(data.sort(function (a, b) {
  134. return b.value - a.value;
  135. }).slice(0, 6)),
  136. symbolSize: function (val) {
  137. return val[2] / 20;
  138. },
  139. showEffectOn: 'render',
  140. rippleEffect: {
  141. brushType: 'stroke'
  142. },
  143. hoverAnimation: true,
  144. label: {
  145. normal: {
  146. formatter: '{b}',
  147. position: 'right',
  148. show: true
  149. }
  150. },
  151. itemStyle: {
  152. normal: {
  153. color: '#ffd800',
  154. shadowBlur: 10,
  155. shadowColor: 'rgba(0,0,0,.3)'
  156. }
  157. },
  158. zlevel: 1
  159. }
  160. **/
  161. ]
  162. };
  163. myChart.setOption(option);
  164. window.addEventListener("resize",function(){
  165. myChart.resize();
  166. });
  167. }
  168. })