前言

最近做网站的后台数据统计,其中有一项是从百度统计那里获取的访问网站的人员分布,然后我就使用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言相关推荐

  1. 我的世界中国版服务器没有mods文件夹,我的世界中国版如何安装mod 国服安装mod的详细教程...

    原标题:我的世界中国版如何安装mod 国服安装mod的详细教程 我的世界中国版是一款很受欢迎的游戏,但玩家们却遇到了"我的世界中国版如何安装mod"这个重要的问题,现在大家就不用担 ...

  2. 怎么在html插入谷歌地图,html页面插入百度or谷歌地图

    一.百度地图 1.打开"百度地图生成器"的网址:http://api.map.baidu.com/lbsapi/creatmap/index.html 2.在"1.定位中 ...

  3. java mysql 查询_java连接mysql数据库达成数据查询详细教程

    前言:本篇文章适用于所有前后端开发者 众所周知,只要是编程,那肯定是需要存储数据的,无论是c语言还是java,都离不开数据的读写,数据之间传输不止,这也就形成了现代互联网的一种相互存在关系! 而读写存 ...

  4. cms是什么意思啊_织梦CMS网站如何自动提交百度快速收录(详细教程)

    前不久,站长们发现百度搜索资源平台把链接提交"的功能改为"普通收录",同时新增了"快速收录"的功能.普通收录,我相信很多站长们都知道怎么去提交,但是快 ...

  5. 织梦主动提交_织梦CMS网站如何自动提交百度快速收录(详细教程)

    前不久,站长们发现百度搜索资源平台把链接提交"的功能改为"普通收录",同时新增了"快速收录"的功能.普通收录,我相信很多站长们都知道怎么去提交,但是快 ...

  6. Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  7. Java自动化测试框架-04 - TestNG之Test Method篇 - (详细教程)

    简介 按照上一篇的计划,这一篇给小伙伴们分享一下测试方法. 一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递 ...

  8. 《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)

    1.简介 前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动三大浏览器.按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome.因此宏哥这里主要介绍一下如 ...

  9. Java自动化测试框架-09 - TestNG之依赖注入篇 (详细教程)

    1.-依赖注入 TestNG支持两种不同类型的依赖项注入:本机(由TestNG本身执行)和外部(由诸如Guice的依赖项注入框架执行). 1.1-本机依赖项注入 TestNG允许您在方法中声明其他参数 ...

  10. Java自动化测试框架-03 - TestNG之Test Group篇 - (详细教程)

    简介 其实这篇文章的group宏哥在上一篇中就提到过,但是就是举例一笔带过的,因此今天专门有一篇文章来讲解Group的相关知识.希望大家茅塞顿开 ,有着更进一步认识和了解测试组. 一.Test Gro ...

最新文章

  1. Tensor VS NumPy
  2. ITK VTK CTK QT 跨平台联合开发之 一
  3. Foundation 框架
  4. 在CentOS_Linux版虚拟机中安装VMTools工具
  5. Html5 Canvas 学习之路(一)
  6. Opengl-帧缓冲(一个新的缓冲对象,想一下深度和模板缓冲)
  7. OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置
  8. 为嵌入式对象(值对象)加校验
  9. 【渝粤教育】广东开放大学 数据采集技术 形成性考核 (29)
  10. 前端学习(1124):思考题
  11. python 基础知识点整理 和具体应用
  12. Spark笔记整理(一):spark单机安装部署、分布式集群与HA安装部署+spark源码编译...
  13. 控制层SpringMVC和Struts2的区别
  14. Java快捷键的设置与使用
  15. keil+flymcu+CubeMX开发STM32F407
  16. Kali [BeEF-XSS]XSS利用工具
  17. 交换机和集线器的区别
  18. matlab批量将mp3文件转wav文件
  19. 最好用的工程资料软件
  20. 【数学建模笔记】对策论

热门文章

  1. cad黑色背景变成白色_CAD操作记不全?看这个就够了!附上全面整理,动图教程-深圳造价培训...
  2. 微信购物商城网站定制需要多少钱?电商网站建设开发方案(一)
  3. 图书馆管理系统(使用数据库实现)
  4. Ubuntu安装OpenCV4记录
  5. 以MQL5 编写的EA 交易程序的测试与优化指南
  6. html调用网易云播放器无法自动播放,HTML网页调用 网易云 音乐播放器代码-Go语言中文社区...
  7. Unity3D中Grid Layout Group组件一键实现自动排版Image
  8. cjson构建_cJSON的构造和解析
  9. msm8937之串口dts配置
  10. 虚幻4连接mysql蓝图教程_[unreal4蓝图教程]虚幻4蓝图使用小技巧