java 中国地图_Echarts+Java生成百度统计中国地图详细教程-Fun言
前言
最近做网站的后台数据统计,其中有一项是从百度统计那里获取的访问网站的人员分布,然后我就使用echarts搞了一个中国地图,刚开始用假数据渲染出来后很简单,效果立竿见影,然而在使用后台获取数据后再渲染地图数据死活加载不出来,然后在昨天熬夜到一点后终于成功了,写前端的java是真的伤不起啊。。下面把教程给大家说一下避免在进坑!
效果
前端代码
html:
Echarts使用心得总结--中国地图
Js代码:var mapChart = echarts.init(document.getElementById("echarts-map-chart"));
var mapoption = {
title: {
text: '今日网站浏览量',
subtext: '中国区',
x: 'center'
},
tooltip: {
trigger: 'item'
},
dataRange: {
max:88,
min:0,
x: 'left',
y: 'bottom',
text: ['高', '低'], // 文本,默认为数值文本
color: ["#3887e0", "#e6e6e6"],
calculable: true
},
toolbox: {
show: true,
orient: 'vertical',
x: 'right',
y: 'center',
feature: {
mark: {show: true},
dataView: {show: true, readOnly: false},
restore: {show: true},
saveAsImage: {show: true}
}
},
roamController: {
show: true,
x: 'right',
mapTypeControl: {
'china': true
}
},
series: [
{
name: '浏览量',
type: 'map',
mapType: 'china',
roam: false,
itemStyle: {
normal: {
label: {show: true},
areaStyle: {color: '#000000'},//地图整体颜色
borderColor: '#fff',//地图各省轮廓颜色
borderWidth: 1,//地图各省轮廓线条粗细
},
emphasis: {color: '#'}
}
}
]
};
mapChart.setOption(mapoption);//先渲染出空地图
mapChart.hideLoading();
var url="http://localhost:8093";
//请求地图数据
$.ajax({
url: url+'/index/mapData',
type: 'POST',
dataType:'json',
success: function(data) {
var options=mapChart.getOption();
console.log(options);
// JSON.parse(data.result.areaData);这里至关重要!必须要把后台传的string转化为array才能渲染数据
options.series[0].data = JSON.parse(data.result.areaData);//把数据渲染进去
options.dataRange.max = data.result.max;
options.dataRange.min = data.result.min;
mapChart.hideLoading();
mapChart.setOption(options);//数据加载完再渲染一遍地图,这样数据就渲染上去了
$(window).resize(mapChart.resize);
}
});
});
总结:
这里其他的样式都是可以从文档上获取的,重点就是这里的数据必须为json数组,所以要把后台返回的String转化为json数组,下面给大家说下后台数据的获取以java为例。
后台
这里我们是获取的百度地图访问人员地域分布的数据,详细获取请点击:访问百度地图接口获取数据教程@PostMapping("/index/mapData")
@ResponseBody
public Res mapData() throws JSONException {
Map params= BaiduTjApi.siteAreaView("20191111","20191112");
List a= (List) params.get("city");
List b= (List) params.get("data");
JSONArray jsonMap = new JSONArray();//用的是org.json.JSONArray;
for (int i = 0; i < a.size(); i++) {
JSONObject dataObject=new JSONObject();//import org.json.JSONObject;
dataObject.put("name", a.get(i));
dataObject.put("value",b.get(i));
jsonMap.put(dataObject);
}
String result=jsonMap.toString();
System.out.println(result);
params=Maps.newHashMap();
params.put("areaData",result);
params.put("max",b.get(0));
params.put("min",b.get(b.size()-1));
return new Res(params);
}
解析的数据[{"name":"山东","value":948},{"name":"广东","value":193},{"name":"北京","value":118},{"name":"浙江","value":91},{"name":"湖南","value":65},{"name":"河北","value":55},{"name":"福建","value":55},{"name":"江苏","value":43},{"name":"上海","value":41},{"name":"河南","value":39},{"name":"四川","value":38},{"name":"江西","value":28},{"name":"湖北","value":26},{"name":"广西","value":13},{"name":"辽宁","value":13},{"name":"台湾","value":12},{"name":"安徽","value":11},{"name":"天津","value":9},{"name":"陕西","value":8},{"name":"云南","value":5},{"name":"香港","value":5},{"name":"重庆","value":5},{"name":"新疆","value":4},{"name":"黑龙江","value":3},{"name":"山西","value":3},{"name":"吉林","value":3},{"name":"贵州","value":3},{"name":"内蒙古","value":2},{"name":"甘肃","value":1},{"name":"澳门","value":1}]
你还没有登录,请先使用 QQ登录 或 注册!
文章评论
发表评论
java 中国地图_Echarts+Java生成百度统计中国地图详细教程-Fun言相关推荐
- 我的世界中国版服务器没有mods文件夹,我的世界中国版如何安装mod 国服安装mod的详细教程...
原标题:我的世界中国版如何安装mod 国服安装mod的详细教程 我的世界中国版是一款很受欢迎的游戏,但玩家们却遇到了"我的世界中国版如何安装mod"这个重要的问题,现在大家就不用担 ...
- 怎么在html插入谷歌地图,html页面插入百度or谷歌地图
一.百度地图 1.打开"百度地图生成器"的网址:http://api.map.baidu.com/lbsapi/creatmap/index.html 2.在"1.定位中 ...
- java mysql 查询_java连接mysql数据库达成数据查询详细教程
前言:本篇文章适用于所有前后端开发者 众所周知,只要是编程,那肯定是需要存储数据的,无论是c语言还是java,都离不开数据的读写,数据之间传输不止,这也就形成了现代互联网的一种相互存在关系! 而读写存 ...
- cms是什么意思啊_织梦CMS网站如何自动提交百度快速收录(详细教程)
前不久,站长们发现百度搜索资源平台把链接提交"的功能改为"普通收录",同时新增了"快速收录"的功能.普通收录,我相信很多站长们都知道怎么去提交,但是快 ...
- 织梦主动提交_织梦CMS网站如何自动提交百度快速收录(详细教程)
前不久,站长们发现百度搜索资源平台把链接提交"的功能改为"普通收录",同时新增了"快速收录"的功能.普通收录,我相信很多站长们都知道怎么去提交,但是快 ...
- Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)
1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...
- Java自动化测试框架-04 - TestNG之Test Method篇 - (详细教程)
简介 按照上一篇的计划,这一篇给小伙伴们分享一下测试方法. 一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递 ...
- 《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)
1.简介 前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动三大浏览器.按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome.因此宏哥这里主要介绍一下如 ...
- Java自动化测试框架-09 - TestNG之依赖注入篇 (详细教程)
1.-依赖注入 TestNG支持两种不同类型的依赖项注入:本机(由TestNG本身执行)和外部(由诸如Guice的依赖项注入框架执行). 1.1-本机依赖项注入 TestNG允许您在方法中声明其他参数 ...
- Java自动化测试框架-03 - TestNG之Test Group篇 - (详细教程)
简介 其实这篇文章的group宏哥在上一篇中就提到过,但是就是举例一笔带过的,因此今天专门有一篇文章来讲解Group的相关知识.希望大家茅塞顿开 ,有着更进一步认识和了解测试组. 一.Test Gro ...
最新文章
- Tensor VS NumPy
- ITK VTK CTK QT 跨平台联合开发之 一
- Foundation 框架
- 在CentOS_Linux版虚拟机中安装VMTools工具
- Html5 Canvas 学习之路(一)
- Opengl-帧缓冲(一个新的缓冲对象,想一下深度和模板缓冲)
- OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置
- 为嵌入式对象(值对象)加校验
- 【渝粤教育】广东开放大学 数据采集技术 形成性考核 (29)
- 前端学习(1124):思考题
- python 基础知识点整理 和具体应用
- Spark笔记整理(一):spark单机安装部署、分布式集群与HA安装部署+spark源码编译...
- 控制层SpringMVC和Struts2的区别
- Java快捷键的设置与使用
- keil+flymcu+CubeMX开发STM32F407
- Kali [BeEF-XSS]XSS利用工具
- 交换机和集线器的区别
- matlab批量将mp3文件转wav文件
- 最好用的工程资料软件
- 【数学建模笔记】对策论
热门文章
- cad黑色背景变成白色_CAD操作记不全?看这个就够了!附上全面整理,动图教程-深圳造价培训...
- 微信购物商城网站定制需要多少钱?电商网站建设开发方案(一)
- 图书馆管理系统(使用数据库实现)
- Ubuntu安装OpenCV4记录
- 以MQL5 编写的EA 交易程序的测试与优化指南
- html调用网易云播放器无法自动播放,HTML网页调用 网易云 音乐播放器代码-Go语言中文社区...
- Unity3D中Grid Layout Group组件一键实现自动排版Image
- cjson构建_cJSON的构造和解析
- msm8937之串口dts配置
- 虚幻4连接mysql蓝图教程_[unreal4蓝图教程]虚幻4蓝图使用小技巧