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 ...
随机推荐
- Shell编程—图形化脚本
1创建文本菜单 1.1普通的文本菜单 $ cat menu1 #!/bin/bash # simple script menu function diskspace { clear df -k } f ...
- IDEA下Maven项目搭建踩坑记----3.最长的bug,最简单的错误。同一类中,部分函数的@AutoWired注入的对象失效
这个错误绝对是我写到现在为止最傻X的一个错误,先上图 问题: 出了一个特别长的错误,大致的意思就是mapper.xml文件注入Dao层的时候失败. 解决: 查看一下错误的位置→ 找到Dao层 找到错误 ...
- idea如何安装插件
原文地址:https://jingyan.baidu.com/article/215817f742a61c1eda142329.html 1.首先打开idea界面,然后 按住快捷键ctrl+shift ...
- Pytorch原生AMP支持使用方法(1.6版本)
AMP:Automatic mixed precision,自动混合精度,可以在神经网络推理过程中,针对不同的层,采用不同的数据精度进行计算,从而实现节省显存和加快速度的目的. 在Pytorch 1. ...
- SpringCloud Alibaba Nacos 服务注册
业务服务接入Nacos服务治理中心 启动Nacos访问地址为:http://101.200.201.195:8848/nacos/ 创建bom工程用于管理依赖(下方附加源码地址) 准备工作完成后开始接 ...
- Labview学习之路(八)如何让控件显示在修饰符的前面
在Labview2017版本中,前面板选择修饰控件,会出现部分修饰控件会掩盖其他控件,情况如下: 我们右键点击和属性中都没有相关属性的改变,为什么是这样我也不清除: 上网查了一下,看到其他版本会有显示 ...
- unity中使用的着色器语言
在unity中,着色器编程使用了一列列的HLSL语言变种(也叫作Cg,但是大部分实际上两者都是一样的). 目前,为了在不同平台下保持最好的跨平台性, 取样贴图时,最好使用DX9风格 的HLSL. 着色 ...
- Zabbix template for Microsoft SQL Server总结
Zabbix template for Microsoft SQL Server介绍 这里介绍Zabbix下监控Microsoft SQL Server数据库非常好用的一个模板,模板名为&qu ...
- 如何解决SpringBoot工程中的错误:java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
出错原因:MySQL依赖及MySQL驱动包高于在使用的MySQL数据库版本. 比如,我本地数据库版本是:Server version: 5.2.3-falcon-alpha-community-nt ...
- 在一张id连续的表中找出缺失的id
有这样一张表: create table tb_lostid( id number(6,0) primary key not null, name nvarchar2(20) not null ) 可 ...