juece.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730
  1. var map;
  2. var infoBoxTemp = null;
  3. $(function () {
  4. // var whdef = 100/1920;// 表示1920的设计图,使用100PX的默认值
  5. var whdef = 100/916;// 表示1920的设计图,使用100PX的默认值
  6. var wH = window.innerHeight;// 当前窗口的高度
  7. var wW = window.innerWidth;// 当前窗口的宽度
  8. // var rem = wW * whdef;// 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
  9. var rem = wH * whdef;// 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
  10. $('html').css('font-size', rem + "px");
  11. //创建地图
  12. initMap();
  13. getBoundary();
  14. findInfo();
  15. //加载统计图1
  16. loadoOption1(0);
  17. //加载统计图2
  18. loadoOption2(0);
  19. //加载统计图3
  20. loadoOption3(0);
  21. // guimoTop5();
  22. //加载距离排行榜
  23. loadjuliTop(109.088,34.321 );
  24. //重新按类型加载数据
  25. $("#seType").change(function(){
  26. //加载教育
  27. if($(this).val()==0){
  28. var grade=$("#seDj");
  29. grade.empty();
  30. grade.append("<option value='' selected>请选择</option>");
  31. grade.append("<option value='3' >高中</option>"); //添加下拉列表
  32. grade.append("<option value='2'>初中</option>");
  33. grade.append("<option value='1'>小学</option>");
  34. grade.append("<option value='0' >幼儿园</option>");
  35. var html='<input type="radio" class="rdo" name="seXz" onclick="searchDate()" value="教育部门" > 教育部门'+
  36. '<input type="radio" class="rdo" name="seXz" onclick="searchDate()" value="民办">民办'+
  37. '<input type="radio" class="rdo" name="seXz" onclick="searchDate()" value="地方企业"> 地方企业'+
  38. '<input type="radio" class="rdo" name="seXz" onclick="searchDate()" value="事业单位"> 事业单位';
  39. $("#slexz").html(html);
  40. //加载区域边框
  41. getBoundary();
  42. findInfo();
  43. //加载统计图1
  44. loadoOption1(0);
  45. //加载统计图2
  46. loadoOption2(0);
  47. //加载距离排行榜
  48. loadjuliTop(109.088,34.321 );
  49. //加载医疗
  50. }else{
  51. var grade=$("#seDj");
  52. grade.empty();
  53. grade.append("<option value='' selected>请选择</option>");
  54. grade.append("<option value='村卫生室'>村卫生室</option>"); //添加下拉列表
  55. grade.append("<option value='普通诊所'>普通诊所</option>");
  56. grade.append("<option value='中医诊所'>中医诊所</option>");
  57. grade.append("<option value='综合医院'>综合医院</option>");
  58. var html='<input type="radio" class="rdo" name="seXz" onclick="searchDate()" value="测试" > 测试';
  59. $("#slexz").html(html);
  60. map.clearOverlays();
  61. getBoundary();
  62. $("#jlTop").html("");
  63. //加载区域边框
  64. getBoundary();
  65. findInfo1();
  66. loadoOption1(1);
  67. loadoOption2(1);
  68. //加载距离排行榜
  69. loadjuliTop(109.088,34.321 );
  70. }
  71. });
  72. }) ;
  73. /**
  74. * 地图添加标记点
  75. */
  76. function findInfo(){
  77. //名称
  78. var seName= $("#seName").val();
  79. //类型(教育、医疗)
  80. var seType= $("#seType").val();
  81. var tophtml="";
  82. //等级(教育(高中、初中、小学、幼儿园)、医疗(诊所、医院))
  83. var seDj= $("#seDj").val();
  84. //等级(正常 停业 注销)
  85. var seZT= $('input[name="seZT"]:checked').val();
  86. //性质(教育(教育部门、民办、地方企业、事业单位)、医疗(诊所、医院))
  87. var seXz= $('input[name="seXz"]:checked').val();
  88. }
  89. /**
  90. * 地图添加标记点
  91. */
  92. function findInfo1(){
  93. //名称
  94. var seName= $("#seName").val();
  95. //类型(教育、医疗)
  96. var seType= $("#seType").val();
  97. var tophtml="";
  98. //等级(教育(高中、初中、小学、幼儿园)、医疗(诊所、医院))
  99. var seDj= $("#seDj").val();
  100. //等级(正常 停业 注销)
  101. var seZT= $('input[name="seZT"]:checked').val();
  102. //性质(教育(教育部门、民办、地方企业、事业单位)、医疗(诊所、医院))
  103. // var seXz= $('input[name="seXz"]:checked').val();
  104. }
  105. // //加载学校规模排行榜
  106. // function guimoTop5(){
  107. // var tophtml="";
  108. // jQuery.ajax({
  109. // type:"post",
  110. // dataType:"json",
  111. // cache:false,
  112. // url:ctx+"/front/guimoTop",
  113. // success:function(data){
  114. // //如果返回success
  115. // if(data.success){
  116. // //循环返回json串中models的数据
  117. // jQuery.each(data.models,function(index,value){
  118. // if(index>4){
  119. // return false;
  120. // }else{
  121. // tophtml = tophtml+'<li><b>'+(index+1)+'</b><label>'+value.mc+'</label> ' +
  122. // '<span class="r unchanged"><strong>'+value.rnrs+'</strong></span><span class="r unchanged1">' +value.bxxz+'</span></li>';
  123. // }
  124. // })
  125. // }
  126. // $("#gmTop").html(tophtml);
  127. // }
  128. // });
  129. // }
  130. //加载距离排行榜
  131. function loadjuliTop(jd,wd){
  132. //名称
  133. var seName= $("#seName").val();
  134. //类型(教育、医疗)
  135. var seType= $("#seType").val();
  136. //等级(教育(高中、初中、小学、幼儿园)、医疗(诊所、医院))
  137. var seDj= $("#seDj").val();
  138. var tophtml="";
  139. }
  140. //查询数据
  141. function searchDate(){
  142. //清除地图所有覆盖物
  143. map.clearOverlays();
  144. getBoundary();
  145. findInfo();
  146. }
  147. //加载统计图1数据
  148. function loadoOption1(type){
  149. myChart1.clear();
  150. var data = [{
  151. value:48,
  152. name: '教育部门'
  153. },{
  154. value:48,
  155. name: '地方企业'
  156. }, {
  157. value: 10,
  158. name: '事业单位'
  159. }, {
  160. value: 1,
  161. name: '民办'
  162. }, {
  163. value: 33,
  164. name: '其它'
  165. }];
  166. var option = {
  167. title: {
  168. text:'1000',
  169. subtext: '总数',
  170. left:'center',
  171. top:'50%',
  172. padding:[24,0],
  173. textStyle:{
  174. color:'#fff',
  175. fontSize:18,
  176. align:'center'
  177. }
  178. },
  179. backgroundColor: 'rgba(255,255,255,0)',
  180. tooltip: {
  181. trigger: 'item',
  182. formatter: "{a} <br/>{b}: {c} ({d}%)"
  183. },
  184. legend: {
  185. orient: 'horizontal',
  186. top: '2%',
  187. left: 'center',
  188. data: ['教育部门', '地方企业', '民办', '事业单位','其它'],
  189. textStyle:{
  190. fontSize: 12,
  191. color: '#6cbbe6'
  192. }
  193. },
  194. series: [{
  195. name: '受理数',
  196. type: 'pie',
  197. selectedMode: 'single',
  198. center : ['50%', '60%'],
  199. radius: ['40%', '58%'],
  200. color: ['#C1232B','#B5C334','#FCCE10','#E87C25','#27727B','#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD'],
  201. label: {
  202. normal: {
  203. position: 'outside',
  204. formatter: '{b}',
  205. textStyle: {
  206. color: '#3db3cb',
  207. fontSize: 10
  208. }
  209. }
  210. },
  211. labelLine: {
  212. normal: {
  213. show: true,
  214. lineStyle: {
  215. color: '#3db3cb'
  216. }
  217. }
  218. },
  219. data: data
  220. }]
  221. };
  222. myChart1.setOption(option);
  223. }
  224. //加载统计图2数据
  225. function loadoOption2(type){
  226. var title,data,data1,data2;
  227. data1=['2014','2015','2016','2017','2018'];
  228. //教育
  229. if(type==0){
  230. // title="办学数量变化趋势";
  231. data=['教育部门','地方企业','民办','事业单位'];
  232. data2=[{value:335, name:'教育部门'},{value:310, name:'地方企业'}, {value:234, name:'民办'},{value:135, name:'事业单位'}];
  233. //医疗
  234. }else{
  235. // title="医疗机构数量变化趋势";
  236. data=['综合医院','村卫生室','普通诊所','中医诊所','社区卫生服务站'];
  237. data2=[{value:35, name:'综合医院'},{value:10, name:'村卫生室'}, {value:23, name:'中医诊所'},{value:35, name:'社区卫生服务站'},{value:5, name:'普通诊所'}];
  238. }
  239. var option2 = {
  240. tooltip : {
  241. trigger: 'axis'
  242. },
  243. legend: {
  244. y:'top',
  245. data:data,
  246. textStyle:{
  247. color: '#6cbbe6'
  248. }
  249. },
  250. calculable : true,
  251. grid:{
  252. x:30,
  253. y:30,
  254. x2:20,
  255. height:'70%'
  256. },
  257. xAxis : [
  258. {
  259. type : 'category',
  260. boundaryGap : false,
  261. data :data1 ,
  262. axisLabel:{
  263. textStyle:{
  264. color: '#6cbbe6'
  265. }
  266. }
  267. }
  268. ],
  269. yAxis : [
  270. {
  271. type : 'value',
  272. axisLabel:{
  273. textStyle:{
  274. color: '#6cbbe6'
  275. }
  276. }
  277. }
  278. ],
  279. series : [
  280. {
  281. name:'教育部门',
  282. type:'line',
  283. stack: '总数',
  284. itemStyle: {normal: {areaStyle: {type: 'default'}}},
  285. data:[20, 32, 10, 34, 90, 30, 21]
  286. },
  287. {
  288. name:'地方企业',
  289. type:'line',
  290. stack: '总数',
  291. itemStyle: {normal: {areaStyle: {type: 'default'}}},
  292. data:[20, 18, 19, 23, 29, 33, 31]
  293. },
  294. {
  295. name:'民办',
  296. type:'line',
  297. stack: '总数',
  298. itemStyle: {normal: {areaStyle: {type: 'default'}}},
  299. data:[15, 23, 20, 15, 19, 33, 41]
  300. },
  301. {
  302. name:'其它',
  303. type:'line',
  304. stack: '总数',
  305. itemStyle: {normal: {areaStyle: {type: 'default'}}},
  306. data:[32, 33, 31, 34, 39, 33, 32]
  307. }
  308. ]
  309. };
  310. myChart2.clear();
  311. myChart2.setOption(option2);
  312. }
  313. //加载统计图3数据
  314. function loadoOption3(type){
  315. var Name = ['省级目标', '市级目标', '完成情况'];
  316. var color = ['#fb734e', '#e32f46', '#94d96c', '#0bbcb7', '#1a9bfc', '#7049f0'];
  317. var data = {
  318. //['国家目标', '海南目标', '完成情况']
  319. "学前教育入园率(%)": [65, 60, 76.5],
  320. "义务教育巩固率(㎡)": [93, 93, 93.4],
  321. "高中教育毛入学率(%)": [87, 87, 88.3]
  322. };
  323. var xAxisData = [];
  324. var data1 = [],
  325. data2 = [],
  326. data3 = [];
  327. for (var i in data) {
  328. xAxisData.push(i);
  329. data1.push(data[i][0])
  330. data2.push(data[i][1])
  331. data3.push(data[i][2])
  332. }
  333. var label = {
  334. normal: {
  335. show: false,
  336. position: 'right',
  337. distance: 10,
  338. formatter: function(param) {
  339. return param.value + '%';
  340. },
  341. textStyle: {
  342. color: '#ffffff',
  343. fontSize: '16',
  344. }
  345. }
  346. };
  347. var series = [];
  348. for (var j = 1; j < 4; j++) {
  349. if (j == 1) {
  350. var symbolOffset = [-48, 0];
  351. var dataArr = data1
  352. } else if (j == 2) {
  353. var symbolOffset = [0, 0];
  354. var dataArr = data2
  355. } else if (j == 3) {
  356. var symbolOffset = [48, 0];
  357. var dataArr = data3
  358. }
  359. series.push({
  360. name: Name[j - 1],
  361. type: 'bar',
  362. stack: j,
  363. xAxisIndex: 0,
  364. data: dataArr,
  365. label: label,
  366. barWidth: 8,
  367. barGap: 5,
  368. itemStyle: {
  369. normal: {
  370. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  371. offset: 0,
  372. color: color[j * 2 - 2]
  373. }, {
  374. offset: 1,
  375. color: color[j * 2 - 1]
  376. }]),
  377. }
  378. },
  379. z: 2
  380. }, {
  381. name: Name[j - 1],
  382. type: 'scatter',
  383. stack: j,
  384. xAxisIndex: 0,
  385. symbolOffset: symbolOffset, //相对于原本位置的偏移量
  386. data: [0, 0, 0, 0],
  387. label: {
  388. normal: {
  389. show: false,
  390. }
  391. },
  392. xAxisIndex: 2,
  393. symbolSize: 14,
  394. itemStyle: {
  395. normal: {
  396. borderColor: '#fff',
  397. borderWidth: 2,
  398. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  399. offset: 0,
  400. color: color[j * 2 - 2]
  401. }, {
  402. offset: 1,
  403. color: color[j * 2 - 1]
  404. }]),
  405. opacity: 1,
  406. }
  407. },
  408. z: 2
  409. }, {
  410. name: Name[j - 1],
  411. type: 'bar',
  412. xAxisIndex: 1,
  413. barGap: '140%',
  414. data: [dataArr[0] + 15, dataArr[1] + 15, dataArr[2] + 15, dataArr[3] + 15, ],
  415. barWidth: 20,
  416. itemStyle: {
  417. normal: {
  418. color: '#0e2147',
  419. barBorderRadius: 5,
  420. }
  421. },
  422. z: 1
  423. }, {
  424. name: Name[j - 1],
  425. type: 'bar',
  426. xAxisIndex: 2,
  427. data: [dataArr[0] + 15.5, dataArr[1] + 15.5, dataArr[2] + 15.5, dataArr[3] + 15.5, ],
  428. barWidth: 24,
  429. barGap: 1,
  430. itemStyle: {
  431. normal: {
  432. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  433. offset: 0,
  434. color: color[j * 2 - 2]
  435. }, {
  436. offset: 1,
  437. color: color[j * 2 - 1]
  438. }]),
  439. barBorderRadius: 5,
  440. }
  441. },
  442. z: 0
  443. }, {
  444. name: Name[j - 1],
  445. type: 'scatter',
  446. hoverAnimation: false,
  447. data: [1.2, 1.2, 1.2, 1.2],
  448. xAxisIndex: 2,
  449. symbolOffset: symbolOffset, //相对于原本位置的偏移量
  450. symbolSize: 24,
  451. itemStyle: {
  452. normal: {
  453. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  454. offset: 0,
  455. color: color[j * 2 - 2]
  456. }, {
  457. offset: 1,
  458. color: color[j * 2 - 1]
  459. }]),
  460. opacity: 1,
  461. }
  462. },
  463. z: 2
  464. })
  465. }
  466. var option3 = {
  467. backgroundColor: '#142058',
  468. grid: {
  469. left: '3%',
  470. right: '3%',
  471. bottom: '5%',
  472. top: '10%',
  473. containLabel: true
  474. },
  475. tooltip: {
  476. show: "true",
  477. trigger: 'axis',
  478. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  479. type: 'shadow', // 默认为直线,可选为:'line' | 'shadow'
  480. shadowStyle: {
  481. color: 'rgba(112,112,112,0)',
  482. },
  483. },
  484. // formatter: '{b}<br />{a0}: {c0}%<br />{a1}: {c1}%<br />{a2}: {c2}%',
  485. formatter: function(params) {
  486. var unit = params[0].name.substring(params[0].name.indexOf('(') + 1, params[0].name.indexOf(')'));
  487. return params[0].name + ' :<br />' + params[0].seriesName + ' :' + params[0].data + unit + '<br />' + params[1].seriesName + ' :' + params[1].data + unit + '<br />' + params[2].seriesName + ' :' + params[2].data + unit;
  488. },
  489. backgroundColor: 'rgba(0,0,0,0.7)', // 背景
  490. padding: [8, 10], //内边距
  491. extraCssText: 'box-shadow: 0 0 3px rgba(255, 255, 255, 0.4);', //添加阴影
  492. },
  493. legend: {
  494. top: 20,
  495. textStyle: {
  496. color: '#fff',
  497. },
  498. data: Name,
  499. },
  500. xAxis: [{
  501. type: 'category',
  502. axisTick: {
  503. show: false
  504. },
  505. axisLine: {
  506. show: true,
  507. lineStyle: {
  508. color: '#363e83',
  509. }
  510. },
  511. axisLabel: {
  512. inside: false,
  513. textStyle: {
  514. color: '#bac0c0',
  515. fontWeight: 'normal',
  516. fontSize: '12',
  517. },
  518. },
  519. data: xAxisData
  520. }, {
  521. type: 'category',
  522. axisLine: {
  523. show: false
  524. },
  525. axisTick: {
  526. show: false
  527. },
  528. axisLabel: {
  529. show: false
  530. },
  531. splitArea: {
  532. show: false
  533. },
  534. splitLine: {
  535. show: false
  536. },
  537. data: xAxisData
  538. }, {
  539. type: 'category',
  540. axisLine: {
  541. show: false
  542. },
  543. axisTick: {
  544. show: false
  545. },
  546. axisLabel: {
  547. show: false
  548. },
  549. splitArea: {
  550. show: false
  551. },
  552. splitLine: {
  553. show: false
  554. },
  555. data: xAxisData
  556. }],
  557. yAxis: {
  558. type: 'value',
  559. axisTick: {
  560. show: false
  561. },
  562. axisLine: {
  563. show: true,
  564. lineStyle: {
  565. color: '#32346c',
  566. }
  567. },
  568. splitLine: {
  569. show: true,
  570. lineStyle: {
  571. color: '#32346c ',
  572. }
  573. },
  574. axisLabel: {
  575. textStyle: {
  576. color: '#bac0c0',
  577. fontWeight: 'normal',
  578. fontSize: '12',
  579. },
  580. },
  581. },
  582. series: series
  583. };
  584. myChart3.clear();
  585. myChart3.setOption(option3);
  586. }
  587. //加载灞桥区行政区划边框
  588. function getBoundary(){
  589. var bdary = new BMap.Boundary();
  590. bdary.get("陕西省西安市灞桥区", function(rs){ //获取行政区域
  591. // map.clearOverlays(); //清除地图覆盖物
  592. var count = rs.boundaries.length; //行政区域的点有多少个
  593. if (count === 0) {
  594. alert('未能获取当前输入行政区域');
  595. return ;
  596. }
  597. var pointArray = [];
  598. for (var i = 0; i < count; i++) {
  599. var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 3, strokeColor: "#FFD700",fillColor:"none"}); //建立多边形覆盖物
  600. pay1=ply;
  601. map.addOverlay(ply); //添加覆盖物
  602. pointArray = pointArray.concat(ply.getPath());
  603. }
  604. });
  605. }
  606. function initMap() {
  607. map = bmap('map' , new BMap.Point(109.1007, 34.3163), 12,false,false,false);// new BMap.Map("container"); // 创建Map实例
  608. //地图自定义样式
  609. map.setMapStyle({
  610. styleJson: [
  611. {
  612. "featureType": "land",
  613. "elementType": "geometry.fill",
  614. "stylers": {
  615. "color": "#20254c",
  616. "hue": "#20254c",
  617. "visibility": "on"
  618. }
  619. },
  620. {
  621. "featureType": "water",
  622. "elementType": "geometry.fill",
  623. "stylers": {
  624. "color": "#2e5eb0"
  625. }
  626. },
  627. {
  628. "featureType": "green",
  629. "elementType": "geometry.fill",
  630. "stylers": {
  631. "color": "#079f3a"
  632. }
  633. },
  634. {
  635. "featureType": "road",
  636. "elementType": "all",
  637. "stylers": {
  638. "color": "#1892dd"
  639. }
  640. },
  641. {
  642. "featureType": "all",
  643. "elementType": "labels.text.fill",
  644. "stylers": {
  645. "color": "#857f7f"
  646. }
  647. },
  648. {
  649. "featureType": "all",
  650. "elementType": "labels.text.stroke",
  651. "stylers": {
  652. "color": "#182c5f"
  653. }
  654. },
  655. {
  656. "featureType": "poi",
  657. "elementType": "all",
  658. "stylers": {
  659. "visibility": "off"
  660. }
  661. },
  662. {
  663. "featureType": "all",
  664. "elementType": "labels.icon",
  665. "stylers": {
  666. "visibility": "off"
  667. }
  668. },
  669. {
  670. "featureType": "all",
  671. "elementType": "labels.text.fill",
  672. "stylers": {
  673. "color": "#2da0c6",
  674. "visibility": "on"
  675. }
  676. }, {
  677. "featureType": "manmade",
  678. "elementType": "geometry.fill",
  679. "stylers": {
  680. "color": "#6a6666ff"
  681. }
  682. }
  683. , {
  684. "featureType": "building",
  685. "elementType": "geometry.fill",
  686. "stylers": {
  687. "color": "#857f7fff"
  688. }
  689. }
  690. ]
  691. });
  692. }