Echarts山东省地图两级钻取、返回及济南合并莱芜地图
Echarts3.0+jQuery3.3.1
山东省地图中济南市需要注意下,莱芜市已经和济南市合并,地图数据来源于地图选择器,获取山东省地图信息及各地市地图信息(JSON格式)
//山东地图(第一级地图)的英文、中文、Json数据
var shandongId = 'shandong';//找到json串
var shandongName = '山东';//加载地图
var shandongJson = null; //记录父级ID、Name
var mapStack = [];
var parentId = null;
var parentName = null; var cityProper = {
'济南市': 'jinan',
'青岛市': 'qingdao',
'威海市': 'weihai',
'烟台市': 'yantai',
'潍坊市': 'weifang',
'淄博市': 'zibo',
'日照市': 'rizhao',
'临沂市': 'linyi',
'济宁市': 'jining',
'枣庄市': 'zaozhuang',
'菏泽市': 'heze',
'聊城市': 'liaocheng',
'泰安市': 'taian',
'德州市': 'dezhou',
'滨州市': 'binzhou',
'东营市': 'dongying'
}; showChart('mapChart'); /**
* Echarts地图
*/
//Echarts地图全局变量,主要是在返回上级地图的方法中会用到
var myChart = null;
function showChart(divid) {
$.get('/js/cockpit/json/shandong/' + shandongId + '.json', function (mapJson) {
shandongJson = mapJson;
myChart = echarts.init(document.getElementById(divid));
registerAndsetOption(myChart, shandongId, shandongName, mapJson, false);
parentId = shandongId;
parentName = '山东';
myChart.on('click', function (param) {
var cityId = cityProper[param.name];
if (cityId != 'shandong' && mapStack.length == 0) {//代表有下级地图
$.get('/js/cockpit/json/shandong/' + cityId + '.json', function (mapJson) {
registerAndsetOption(myChart, cityId, param.name, mapJson, true);
})
} else {
//没有下级地图,回到山东地图,并将mapStack清空
registerAndsetOption(myChart, shandongId, shandongName, shandongJson, false);
mapStack = [];
parentId = shandongId;
parentName = shandongName;
}
});
})
} /**
* 公共方法
* @param {*} myChart
* @param {*} id 市英文名称
* @param {*} name 市汉语名称
* @param {*} mapJson 地图Json数据
* @param {*} flag 是否往mapStack里添加parentId,parentName
*/
function registerAndsetOption(myChart, id, name, mapJson, flag) { echarts.registerMap(name, mapJson);
option = {
title: {
text: name + 'xx数据分析',
subtext: '数据来自xx'
},
tooltip: {
trigger: 'item',
formatter: function (params) {
var obj = JSON.parse(JSON.stringify(params));
var str = "<ul style='text-align:left'><li style='color: #da70d6;font:bold;'>" + obj.name + "</li>";
str = str + "<li> xx总数 :" + obj.data.value + "</li>";
str = str + "<li> xx总数 :" + (obj.data.scnum + obj.data.ltnum) + "</li>";
str = str + "<li> xx总数 :" + obj.data.scnum + "</li>";
str = str + "<li> xx总数 :" + obj.data.ltnum + "</li>";
str = str + "</ul>";
return str;
}
},
toolbox: {
show: true,
orient: 'vertical',
left: 'right',
top: 'top',
feature: {
dataView: {
readOnly: false
},
restore: {},
saveAsImage: {}
}
},
visualMap: {
min: 0,
max: 60000,
text: ['高', '低'],
left: 'right',
top: 'bottom',
realtime: false,
calculable: true,
inRange: {
color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
}
},
geo: {
show: true,
map: name,
label: {
normal: {
show: false
},
emphasis: {
show: false,
}
},
roam: false, //鼠标平移或者缩放
itemStyle: { //每个点的样式
normal: {
areaColor: 'transparent',
borderColor: '#3fdaff',
borderWidth: 2,
shadowColor: 'rgba(63, 218, 255, 0.5)',
shadowBlur: 30
},
emphasis: {
areaColor: '#2B91B7',
}
}
},
series: [{
name: name+'xx数据分析',
type: 'map',
coordinateSystem: 'geo',
mapType: name,
mapLocation: {
x: 'center'
},
itemStyle: {
normal: {
label: {
show: true
}
},
emphasis: {
label: {
show: true
}
}
},
data:(function () {
var datas = [];
var params = {
"name":name
};
$.ajax({
type:"POST",
url:"/xx/xx",
dataType:"json",
data:params,
async:false,
success:function (result) {
for (var i = 0; i < result.length; i++){
datas.push({
"value":result[i].totalnum, "name":result[i].city,
"scnum":result[i].scnum, "ltnum":result[i].ltnum
})
}
}
})
return datas;
})(),
}]
};
myChart.setOption(option); if (flag) {//往mapStack里添加parentId,parentName,返回上一级使用
mapStack.push({
mapId: parentId,
mapName: parentName
});
parentId = id;
parentName = name;
}
}
效果图如下


参考:https://dongkelun.com/2018/11/27/echartsChinaMap/
Echarts山东省地图两级钻取、返回及济南合并莱芜地图的更多相关文章
- ECharts 地图绘制与钻取简易接口
1.地图绘制过程原理 给定范围边界经纬度数据,再给它个名字就构成了绘制地图的基础.也就是说,你可以绘制任意形状的地图版块. 2.地图数据生成 中国以及省市县等地图的基础数据可以从这里生成与下载. ht ...
- J2CACHE 两级缓存框架
概述 缓存框架我们有ehcache 和 redis 分别是 本地内存缓存和 分布式缓存框架.在实际情况下如果单台机器 使用ehcache 就可以满足需求了,速度快效率高,有些数据如果需要多台机器共享这 ...
- 实现外卖选餐时两级 tableView 联动效果
最近实现了下饿了么中选餐时两级tableView联动效果,先上效果图,大家感受一下: 下面说下具体实现步骤: 首先分解一下,实现这个需求主要是两点,一是点击左边tableView,同时滚动右边tabl ...
- Spring+ehcache+redis两级缓存
问题描述 场景:我们的应用系统是分布式集群的,可横向扩展的.应用中某个接口操作满足以下一个或多个条件: 1. 接口运行复杂代价大, 2. 接口返回数据量大, 3. 接口的数据基本不会更改, 4. 接口 ...
- Combobox下拉框两级联动
下拉框的两级联动是我们开发中经常遇到一种情况.比如一个学生管理系统中,根据年级.科目及姓名查询学生考试成绩,年级和科目都是硬盘中的有限数据(数据库)而学生则可以有用户手动指定,这时在数据库中有年级和科 ...
- 用guava快速打造两级缓存能力
首先,咱们都有一共识,即可以使用缓存来提升系统的访问速度! 现如今,分布式缓存这么强大,所以,大部分时候,我们可能都不会去关注本地缓存了! 而在一起高并发的场景,如果我们一味使用nosql式的缓存,如 ...
- Redis+Caffeine两级缓存,让访问速度纵享丝滑
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 在高性能的服务架构设计中,缓存是一个不可或缺的环节.在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中, ...
- 基于Spring接口,集成Caffeine+Redis两级缓存
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 在上一篇文章Redis+Caffeine两级缓存,让访问速度纵享丝滑中,我们介绍了3种整合Caffeine和Redis作为两级缓存使用的方法,虽 ...
- ipv4理论知识3-分类编址之两级编址
两级编制 分类编址时,同一网络中的所有地址都属于统一个地址块,而每个地址块包含两部分:网络标识和主机标识.网络标识指明了网络,主机标识则指明了连接到该网络的一台特定的主机.如下图描绘了分类编址中一个I ...
随机推荐
- Codeforces Round #665 (Div. 2)A-C题解
A. Distance and Axis 题目:http://codeforces.com/contest/1401/problem/A 题解:对于n来说分两种情况,一是奇数,二则是偶数 ①奇数:对于 ...
- go微服务系列(四) - http api中引入protobuf
1. protobuf相关依赖安装 2. 改造之前的client 2.1 新建proto文件 2.2 运行protoc命令生成go文件 2.3 然后把原来的map修改成具体的类型就可以了 3. 处理j ...
- seo排名顾问不仅仅是关键词排名
http://www.wocaoseo.com/thread-246-1-1.html SEO顾问是什么,应该做什么工作呢,是不是主要做关键词的优化推广呢?做seo顾问入门的人,或者想聘请seo顾问的 ...
- .net技术栈转型心路历程分享
一.概要 本篇文章针对的是,长年写客户端(WPF/winfrom/delphi)的小伙伴想转后台写数据服务(asp.net mvc webapi , socket)或者想转其它技术,却又不知道改如何下 ...
- Redis秒杀实战-微信抢红包-秒杀库存,附案例源码(Jmeter压测)
导读 前二天我写了一篇,Redis高级项目实战(点我直达),SpringBoot整合Redis附源码(点我直达),今天我们来做一下Redis秒杀系统的设计.当然啦,Redis基础知识还不过关的,先去加 ...
- WPF管理系统开发框架搭建指南,2020从入门到放弃
WPF技术是一个很不错的技术,但一直没有上手过正式的项目,趁在做这个医疗项目时,遂搭建一个WPF开发框架,目的是为了统一WPF开发并提高开发效率:我对WPF技术算是零基础,现学现卖,用这些不成体系的文 ...
- Android开发之将图片文件转化为字节数组字符串,并对其进行Base64编码处理
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, 转载请说明出处. /** * @将图片文件转化为字节数组字符串,并对其进行Base64编码处理 * ...
- 条件竞争(race condition)
条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同用户的请求时是并发进行的,因此,如果并发处理不当或相关操作逻辑顺序设计的不合理时,将会导致此类问题的发生. 参考了一些资料,发现一个比较能说明问 ...
- 01_Python基础知识梳理
1.计算机知识基础 1.计算机组成 计算机底层: 点子电路,计算机只能识别两个数 0 1 硬件: 处理器(CPU), 运行内存(RAM), 主板(总线设备), 外部存储设备(硬盘U盘等 ...
- WEBAPI 增加身份验证
1,在Webapi项目下添加如下引用: Microsoft.AspNet.WebApi.Owin Owin Microsoft.Owin.Host.SystemWeb Microsoft.Owin.S ...