echarts 地图 动态 展示 结合css+js

echarts地图展示功能非常强大,官网上静态展示的样例非常多了,动态的资料少。研究了下。我眼下实现的通过ajax从server获取数据动态展示地图。

另外,我们有时候希望在地图之上做些自己定义的东西,比方:通知框。或者其它的东西。我们能够通过css图层的方式在地图之上实现。我实现的效果例如以下:

附上源码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>ECharts</title>
<style>
.dn{
display:none;
}
.divcss5-1 {
	z-index: 10;
	border: 1px solid rgb(204, 204, 204);
	left: 900px;
	top: 100px;
	width: 400px;
	height: 540px;
	position: absolute;
	padding: 0 10px;
}
</style>
</head>

<body>
<div id="board" class="divcss5-1"></div>
	<!--Step:1 Prepare a dom for ECharts which (must) has size (width & hight)-->
	<!--Step:1 为ECharts准备一个具备大小(宽高)的Dom-->
	<!--<div id="main" style="height:500px;border:1px solid #ccc;padding:10px;"></div>-->
	<div id="mainMap" style="height: 700px; border: 0px solid #ccc; padding: 10px;margin:25px 0;"></div>

	<!--Step:2 Import echarts.js-->
	<!--Step:2 引入echarts.js-->
	<script src="/js/echarts/dist/echarts-all.js"></script>
	<script src="/js/jquery-1.4.3.js"></script>

	<script type="text/javascript">
		//var myChart = echarts.init(document.getElementById(‘mainMap‘));
		// Step:4 require echarts and use it in the callback.
		// Step:4 动态载入echarts然后在回调函数中開始使用,注意保持按需载入结构定义图表路径
		var option = {
				backgroundColor: ‘#ffffff‘,
				title : {
					text : ‘***网报进度‘,
					subtext : ‘(当前总数)‘,
					x : ‘center‘
				},
				tooltip : {
					trigger : ‘item‘,
					formatter : "{c}"
				},
				legend : {
					orient : ‘vertical‘,
					x : ‘left‘,
					data : [ ‘注冊情况统计‘ ]
				},
				dataRange : {
					x : ‘left‘,
					y : ‘bottom‘,
					//orient : ‘horizontal‘,
					min : 0,
					max : 3000000,
					text : [ ‘300万‘, ‘0‘ ], // 文本,默觉得数值文本
					splitNumber : 0
				},
				toolbox : {
					show : false,
				},
				roamController : {
					show : false,
				},
				series : [{
					name : ‘注冊情况统计‘,
					type : ‘map‘,
					mapType : ‘china‘,
					mapLocation: {
	                    x: ‘100‘,
	                    y: ‘center‘,
	                    height: ‘80%‘
	                },
					roam : false,
					showLegendSymbol : false,
					itemStyle : {
						normal : {
							borderWidth : 1,
							borderColor : ‘black‘,
							color : ‘grey‘,
							label : {
								show : true,
								textStyle : {
									color : "black",
									fontWeight : "bold"
								}
							}
						},
						emphasis : {
							label : {
								show : true
							}
						}
					},
					data : [],
					geoCoord: {
		                "海门":[121.15,31.89],
		                "北京":[116.46,39.92]
					}
				}]
			};
		//myChart.setOption(option);
		var mapDiv = document.getElementById(‘mainMap‘);
		var myChart = echarts.init(mapDiv);
		myChart.showLoading({
		    text: ‘正在努力的读取数据中...‘,    //loading话术
		});
		function getTotal(){
			$.getJSON("/m/total.action",
				{xllb:‘20‘},
				function(json){
					var mapChart = echarts.init(mapDiv);
					var myOption = option;
					var cntAll = 0;
					for(var i=0;i<json.length;i++) {
						cntAll+=json[i].value;
					}
					myOption.title.subtext = "(当前总数"+cntAll+")";
					//var series = myChart.getSeries();
					myOption.series[0].data = json;
					//myChart.setSeries(series);
					mapChart.setOption(myOption, true);
					//console.log(json);
				}
			);
		}
		var index = 0;
		function addMsg(){
			$.getJSON("/m/msg.action",
				{xllb:‘20‘,start:index},
				function(json){
					if(json.length>0) {
						var msg = json[0].msg;
						var $board = $("#board");
						var $ps = $board.find("p");
						if($ps.size()>13) {
							var $lastP = $ps.last()
							$lastP.hide("slow");
							$lastP.remove();
							//console.log("已满");
						}
						var p = $("<p class=‘dn‘>"+msg+"</p>");
						$board.prepend(p);
						p.slideDown("slow");
						index++;
					}
				}
			);
		}
		setInterval("addMsg()",5000);
		setInterval("getTotal()",5000);
		//getTotal(myChart);
	</script>
</body>
</html>
时间: 2024-11-03 19:59:17

echarts 地图 动态 展示 结合css+js的相关文章

动态添加删除css/js文件

var gTag = 1; function clickButton() { if(gTag == 1) { //加载js /*var linkObj = document.createElement("script"); linkObj.setAttribute("src","b.js"); document.body.appendChild(linkObj); gTag = 2; removejscssfile("b.js"

arcgis api for js入门开发系列二不同地图服务展示(含源代码)

上一篇介绍了arcgis api离线部署,这篇开始正式介绍arcgis api for js开发:想要学习webgis开发,首先得熟悉了解前端技术,比如界面布局设计的html+css,核心的是javascript(js),arcgis api就是js写的,就是说想要开发gis功能前提下,你得熟悉了解js,不然你连源代码都看不懂.在这里,推荐esri官网的arcgis api for js:https://developers.arcgis.com/javascript/3/jsapi/:里面详细

echarts实现中国地图数据展示

在项目中运用到图形展示数据太常见了,echarts是一款使用率非常高的插件工具,很多大平台都是使用echarts: 一般运用到条形.折线.扇形图,今天说一说在中国地图上展示各地数据: 首先要准备中国地图的JS文件,可以在网盘下载,链接: https://pan.baidu.com/s/1j_edGU2ka9YeHBTErqDWdg 密码: ft9n 也可以在github上克隆下来:https://github.com/Luna829/incubator-echarts/blob/master/m

js动态加载css和js

js动态加载css和js用处挺多,特意提出来 var loadUtil = { /* * 方法说明:[动态加载js文件css文件] * 使用方法:loadUtil.loadjscssfile("http://libs.baidu.com/jquery/1.9.1/jquery.js","js") * @param fileurl 文件路径, * @param filetype 文件类型,支持传入类型,js.css */ loadjscssfile:function(

关于 ajax 动态返回数据 css 以及 js 失效问题

ajax 毕竟是异步的 所以动态加载出来的数据 难免遇到 css 或者 js 失效的问题,所以要动态加载 css ji等文件了 1.公共方法 load //动态加载 js /css function loadjscssfile(filename, filetype) { if (filetype == "js") { //判定文件类型 var fileref = document.createElement('script')//创建标签 fileref.setAttribute(&q

js中动态载入css js样式

js中动态载入css样式,方法如下: //<link rel="stylesheet" type="text/css" href="http://css.static.m1905.cn/base.min.css"> var addCssLink = function(url){ var link = $('<link>'); link.attr('rel','stylesheet'); link.attr('type','

JavaScript_动态加载CSS和JS文件

项目中需要用到动态加载CSS 文件,整理了一下,顺便融合了动态加载JS 的功能写成了一个对象,先上代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 var dynamicLoading = {   css: function(path){  if(!path || path.length === 0){   throw new Error('argument "path" is required !');

JavaScript动态加载CSS和JS文件

var dynamicLoading = { css: function(path){ if(!path || path.length === 0){ throw new Error('argument "path" is required !'); } var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.href = path; lin

js活jQuery实现动态添加、移除css/js文件

下面是在项目中用到的,直接封装好的函数,拿去在js中直接调用就可以实现css.js文件的动态引入与删除.代码如下 动态加载,移除,替换css/js文件 // 动态添加css文件 function addCss(filename){ var creatHead = $('head'); creatHead.append('<link rel="stylesheet" href="'+filename+'">') } // 移除css/js文件 functi