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山东省地图两级钻取、返回及济南合并莱芜地图的更多相关文章

  1. ECharts 地图绘制与钻取简易接口

    1.地图绘制过程原理 给定范围边界经纬度数据,再给它个名字就构成了绘制地图的基础.也就是说,你可以绘制任意形状的地图版块. 2.地图数据生成 中国以及省市县等地图的基础数据可以从这里生成与下载. ht ...

  2. J2CACHE 两级缓存框架

    概述 缓存框架我们有ehcache 和 redis 分别是 本地内存缓存和 分布式缓存框架.在实际情况下如果单台机器 使用ehcache 就可以满足需求了,速度快效率高,有些数据如果需要多台机器共享这 ...

  3. 实现外卖选餐时两级 tableView 联动效果

    最近实现了下饿了么中选餐时两级tableView联动效果,先上效果图,大家感受一下: 下面说下具体实现步骤: 首先分解一下,实现这个需求主要是两点,一是点击左边tableView,同时滚动右边tabl ...

  4. Spring+ehcache+redis两级缓存

    问题描述 场景:我们的应用系统是分布式集群的,可横向扩展的.应用中某个接口操作满足以下一个或多个条件: 1. 接口运行复杂代价大, 2. 接口返回数据量大, 3. 接口的数据基本不会更改, 4. 接口 ...

  5. Combobox下拉框两级联动

    下拉框的两级联动是我们开发中经常遇到一种情况.比如一个学生管理系统中,根据年级.科目及姓名查询学生考试成绩,年级和科目都是硬盘中的有限数据(数据库)而学生则可以有用户手动指定,这时在数据库中有年级和科 ...

  6. 用guava快速打造两级缓存能力

    首先,咱们都有一共识,即可以使用缓存来提升系统的访问速度! 现如今,分布式缓存这么强大,所以,大部分时候,我们可能都不会去关注本地缓存了! 而在一起高并发的场景,如果我们一味使用nosql式的缓存,如 ...

  7. Redis+Caffeine两级缓存,让访问速度纵享丝滑

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 在高性能的服务架构设计中,缓存是一个不可或缺的环节.在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中, ...

  8. 基于Spring接口,集成Caffeine+Redis两级缓存

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 在上一篇文章Redis+Caffeine两级缓存,让访问速度纵享丝滑中,我们介绍了3种整合Caffeine和Redis作为两级缓存使用的方法,虽 ...

  9. ipv4理论知识3-分类编址之两级编址

    两级编制 分类编址时,同一网络中的所有地址都属于统一个地址块,而每个地址块包含两部分:网络标识和主机标识.网络标识指明了网络,主机标识则指明了连接到该网络的一台特定的主机.如下图描绘了分类编址中一个I ...

随机推荐

  1. Reliable Federated Learning for Mobile Networks

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. arXiv: 1910.06837v1 [cs.CR] 14 Oct 2019 Abst ...

  2. SVG的引入历程

    直接引入编辑器会报错 Google: typescript svg cannot find module找到 这个网址 我放到了 shims-vue.d.ts 里面 declare module &q ...

  3. 怎么下载chrome的扩展程序

    很多时候我们是没办法访问谷歌扩展应用程序 chrome应用商店的,这时候我们最好能把对应扩展应用程序下载保存,以便提供给其他人员使用. 搜索得到知乎有很全的方法: 如何导出并打包第三方chrome扩展 ...

  4. 企业项目实战 .Net Core + Vue/Angular 分库分表日志系统五 | 完善业务自动创建数据库

    教程预览 01 | 前言 02 | 简单的分库分表设计 03 | 控制反转搭配简单业务 04 | 强化设计方案 05 | 完善业务自动创建数据库 说明 这节来把基础的业务部分完善一下. 因为 IQue ...

  5. 如何运用excel或spss等软件统计大量纸质问卷?

      在用纸质问卷进行数据收集时,总是避不开一个问题,就是如何把数据快速准确的进行统计分析.这里提供一个方法,包括以下几个步骤: 一.录入数据 二.上传数据 三.分析数据  一.录入数据 首先把纸质问卷 ...

  6. Gradle Wrapper

    Gradle Wrapper 当把本地一个项目放入到远程版本库的时候,如果这个项目是以gradle构建的,那么其他人从远程仓库拉取代码之后如果本地没有安装过gradle会无法编译运行,如果对gradl ...

  7. Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案

    本文为霍格沃兹测试学院学员学习笔记. Python 装饰器简介 装饰器(Decorator)是 Python 非常实用的一个语法糖功能.装饰器本质是一种返回值也是函数的函数,可以称之为“函数的函数”. ...

  8. 用Java写编译器(1)- 词法和语法分析

    词法和语法分析器构建 ANTLR简介 ANTLR全称ANother Tool for Languate Recognition,是基于LL(*)算法实现的语法分析器生成器和词法分析器生成器,由旧金山大 ...

  9. Fitness - 07.07

    倒计时177天 运动53分钟,共计8组半,5.5公里.拉伸5分钟. 每组跑步5分钟(6.5KM/h),走路1分钟(5.5KM/h). 感冒+姨妈耽搁了大半月的时间 终于进入第六周的训练了~~!加油~! ...

  10. DLX AlgorithmX

    AlgorithmX精确覆盖: https://en.wikipedia.org/wiki/Knuth's_Algorithm_X DLX的基础算法 https://zh.wikipedia.org/ ...