本实例原始信息:
作者:anix
演示地址:Echarts模拟迁徙
源码地址:GitHub-ananix-qianxi

前言

“百度地图春节人口迁徙大数据”(简称“百度迁徙”)是百度在春运期间推出的技术品牌项目,为业界首个以“人群迁徙”为主题的大数据可视化项目。

准备

  • 开发工具
    由于是前端页面项目,所以一般的编辑器都可以,推荐使用vs code
    如果要自己挂载本地geo地图,则需要本地服务器环境,使用vs code时,安装Live Server插件即可
  • 引入文件
    echarts文件*
    地图文件
    jquery文件

编写

  1. 引入资源
<!-- 线上资源--><!-- <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script> --><!-- <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script> -->
<!--本地资源-->  <script src="js/echarts.js"></script><script src="js/jquery.js"></script><!-- <script src="js/china.js"></script> -->
  1. 准备dom(将来放echarts图表的位置)
<div id="container" style="height: 100%"></div>
  1. 初始化一个 echarts 实例
 // 基于准备好的dom,初始化echarts实例// 方式一:使用china.js地图初始化方式// var myChart = echarts.init(document.getElementById('container'));// 方式二:使用地定义geo地图文件初始化方法,需要提前准备好china.json地图文件$.get('js/map/china.json', function (chinaJson) {//注册地图echarts.registerMap('china', chinaJson);//初始化echarts实例var dom = document.getElementById("container");var myChart = echarts.init(dom);//...option//...data//...set//...});
  1. 指定图表的配置项和数据
// 在上一步option的位置
//  0 准备option对象
option = null;
// 1 准备数据// 地区坐标信息var geoCoordMap = {'上海': [121.4648, 31.2891],'东莞': [113.8953, 22.901],'东营': [118.7073, 37.5513],'中山': [113.4229, 22.478],'临汾': [111.4783, 36.1615],//...//此处省略部分数据...'长治': [112.8625, 36.4746],'阳泉': [113.4778, 38.0951],'青岛': [120.4651, 36.3373],'韶关': [113.7964, 24.7028]};// 准备流向信息,value为地区的数据值var BJData = [[{ name: '北京' }, { name: '上海', value: 95 }],[{ name: '北京' }, { name: '广州', value: 90 }],[{ name: '北京' }, { name: '大连', value: 80 }],[{ name: '北京' }, { name: '南宁', value: 70 }],[{ name: '北京' }, { name: '南昌', value: 60 }],[{ name: '北京' }, { name: '拉萨', value: 50 }],[{ name: '北京' }, { name: '长春', value: 40 }],[{ name: '北京' }, { name: '包头', value: 30 }],[{ name: '北京' }, { name: '重庆', value: 20 }],[{ name: '北京' }, { name: '常州', value: 10 }]];var SHData = [[{ name: '上海' }, { name: '包头', value: 95 }],//省略部分数据...];var GZData = [[{ name: '广州' }, { name: '福州', value: 95 }],//省略部分数据...[{ name: '广州' }, { name: '海口', value: 10 }]];var LZData = [[{ name: '兰州' }, { name: '福州', value: 95 }],//省略部分数据...];// 流向图标,可自定义var planePath = 'arrow'var convertData = function (data) {var res = [];for (var i = 0; i < data.length; i++) {var dataItem = data[i];var fromCoord = geoCoordMap[dataItem[0].name];var toCoord = geoCoordMap[dataItem[1].name];if (fromCoord && toCoord) {res.push({fromName: dataItem[0].name,toName: dataItem[1].name,coords: [fromCoord, toCoord]});}}return res;};var color = ['#a6c84c', '#ffa022', '#46bee9'];// 准备自己个性化的数据var lanzhou = {name: '点',type: 'effectScatter',coordinateSystem: 'geo',zlevel: 3,rippleEffect: {brushType: 'stroke'//波纹的绘制方式,可选 'stroke' 和 'fill'},showEffectOn: "render",//显示涟漪label: {normal: {show: true,position: 'left',formatter: '{b}'}},symbolSize: function (val) {return val[2] / 180;},itemStyle: {normal: {color: "red"}},// data: [{name: "lanzhou",value: [103.5901, 36.3043, 1092],tooltip: {//formatter: '中心资源校: <br />{b0}'formatter: function (item, ticket, callback) {let res = "中心资源校:" + item.name + "<br />地区教学点:";for (let i = 0, l = LZData.length; i < l; i++) {res += '<br/>& ' + LZData[i][1].name;}return res},}}//...// 准备系列series   var series = [lanzhou];[['北京', BJData], ['上海', SHData], ['广州', GZData], ['兰州', LZData]].forEach(function (item, i) {series.push({name: item[0] + ' Top10',type: 'lines',zlevel: 1,effect: {show: true,period: 6,trailLength: 0.7,color: '#fff',symbolSize: 3},lineStyle: {normal: {color: color[i],width: 0,curveness: 0.2}},data: convertData(item[1])},{name: item[0] + ' Top10',type: 'lines',zlevel: 2,tooltip: {//formatter: '{a} >{b}{c1}{d}'formatter: function (sdasd, ticket, callback) {let res = "" + sdasd.data.fromName + "->>>" + sdasd.data.toName;return res},},symbol: ['none', 'arrow'],symbolSize: 10,effect: {show: true,period: 6,trailLength: 0,symbol: planePath,symbolSize: 8},lineStyle: {normal: {color: color[i],width: 1,opacity: 0.6,curveness: 0.2}},data: convertData(item[1])},//地图上的点{name: item[0] + ' Top10',type: 'effectScatter',coordinateSystem: 'geo',zlevel: 2,rippleEffect: {brushType: 'stroke'//波纹的绘制方式,可选 'stroke' 和 'fill'},showEffectOn: "emphasis",//高亮时候显示涟漪label: {normal: {show: true,position: 'right',formatter: '{b}'}},symbolSize: function (val) {return val[2] / 8;},itemStyle: {normal: {color: color[i]}},tooltip: {formatter: '地区教学点: <br />{b0} '},data: item[1].map(function (dataItem) {return {name: dataItem[1].name,value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value])};})});});
// 2 将数据放到option里
option = {backgroundColor: '#404a59',title: {text: '教育资源流向',subtext: '数据纯属虚构',left: 'center',textStyle: {color: '#fff'}},tooltip: {trigger: 'item',//formatter: '中心资源校:{b0}<br />地区教学点:{b1}{c}{d}'},legend: {orient: 'vertical',top: 'bottom',left: 'right',data: ['北京 Top10', '上海 Top10', '广州 Top10', '兰州 Top10'],textStyle: {color: '#fff'},selectedMode: 'multiple'//'single' 或者 'multiple' 使用单选或者多选模式},geo: {map: 'china',label: {emphasis: {show: false}},roam: true,itemStyle: {normal: {areaColor: '#323c48',borderColor: '#404a59'},emphasis: {areaColor: '#2a333d'}}},series: series};
  1. 注册option显示图表
     if (option && typeof option === "object") {//注册option显示图表myChart.setOption(option, true);}
  1. 加自己的相关控制代码
           //自己的控制代码myChart.on('click', function (params) {var labelselect;if (params.componentSubType === 'effectScatter') {// 点击到了 effectScatter 上switch (params.name + " Top10") {case "上海 Top10":labelselect = {"上海 Top10": true,"兰州 Top10": false,"北京 Top10": false,"广州 Top10": false};break;case "lanzhou Top10":labelselect = {"上海 Top10": false,"兰州 Top10": true,"北京 Top10": false,"广州 Top10": false};break;case "北京 Top10":labelselect = {"上海 Top10": false,"兰州 Top10": false,"北京 Top10": true,"广州 Top10": false};break;case "广州 Top10":labelselect = {"上海 Top10": false,"兰州 Top10": false,"北京 Top10": false,"广州 Top10": true};break;default:labelselect = {"上海 Top10": false,"兰州 Top10": false,"北京 Top10": false,"广州 Top10": false};}}option.legend.selected = labelselect;myChart.setOption(option, true);});

测试

其他工具自行启动服务访问文件即可
vs code右键,点击open with live server即可
。。。

扩展

结合百度地图的模拟迁徙

转载于:https://www.cnblogs.com/gwzzayy/p/11289024.html

ECharts模拟百度迁徙实例相关推荐

  1. ECharts 2.27学习笔记:地图标线markLine炫光特效,模拟百度迁徙

    为什么80%的码农都做不了架构师?>>>    问题描述 在项目开发中我们遇到了一个关于ECharts的模拟迁徙的问题,迁出好说ECharts中的实例都体现出来了,关键是迁入这块,在 ...

  2. python模拟百度搜索点击链接_用 Python 获取百度搜索结果链接

    前言 近期有许多项目需要这个功能,由于Python实现起来比较简单就这么做了,代码贴下来觉得好点个赞吧~ 代码 # coding: utf-8 import os import time import ...

  3. vue中使用echarts和百度地图实现飞机迁徙图

    在vue-cli生成的项目中使用echarts和百度地图api实现飞机迁徙图,当然也可以实现其他效果. 1. 准备 项目安装echarts 在已经生成的vue项目根目录npm install echa ...

  4. python 在软件自己自动输入-Python模拟百度自动输入搜索功能的实例

    如下所示: # 访问百度,模拟自动输入搜索 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要 ...

  5. 地图 svg中国地图、echarts百度迁徙图

    总结下最近使用过的地图控件: 第一种 svg中国地图 demo:http://www.oschina.net/code/snippet_54124_36979 这个很简单,照着demo里面直接调用就可 ...

  6. vue中使用echarts结合百度地图制作地图(引入百度地图、获取百度地图实例、设置百度地图)

    1.初始化echarts以及例子可以看管网的 地址:https://echarts.apache.org/examples/zh/editor.html?c=map-polygon 2说下我遇到的问题 ...

  7. Echarts模拟迁徙之飞机变小车

    Echarts模拟迁徙之飞机变小车 小车样式 小车路径 在模型迁徙代码块中位置 Echarts中所有代码 最终效果 小车样式 小车样式通过AI(Adobe Illustrator)软件设计完成 小车路 ...

  8. Leaflet中使用leaflet-echarts插件实现Echarts的Migration迁徙图(带炫光特效)

    场景 Leaflet中使用leaflet-echarts插件实现Echarts的Migration迁徙图: Leaflet中使用leaflet-echarts插件实现Echarts的Migration ...

  9. Echarts与百度地图结合实现风场矢量图相关问题

    这是部分js代码,代码里有一些标注,文章最后有相关问题,请耐心阅读,欢迎指导意见留言 function loadmap() { **这段是风场数据处理调用的方法,可以暂时忽略**// https:// ...

  10. echarts引入百度地图API,设置bmap属性问题

    echarts option里的bmap属性结构如下: bmap: {center: [117.239346, 31.824116], // 当前视角中心位置的坐标zoom: 12,roam: tru ...

最新文章

  1. 毕业后五年之内将决定你的一生
  2. 【Scala-spark.mlib】本地矩阵乘法计算效率比较(稠密稀疏哪家强?)
  3. 从零开始学_JavaScript_系列(24)——查看对象属性,合并数组
  4. 1688 复杂业务场景下的 Serverless 提效实践
  5. 【MM】新建移动类型(Movement Type)
  6. 视觉SLAM笔记(19) 相似变换群与李代数
  7. 图灵机器人调用数据恢复_python:用itchat打造属于自己的微信聊天机器人,24小时运行...
  8. BGP联邦原理及配置实例
  9. 汉诺塔解法C语言实现
  10. 「目前全网唯一2万字长文」从JS上下文到Chromium源码的极限拉扯!!兄弟姐妹们接好了!!...
  11. IM开发基础知识补课(二):如何设计大量图片文件的服务端存储架构?
  12. 多径效应和多普勒效应
  13. 影响蜘蛛抓取的因素有哪些?
  14. 数据库中的全表扫描,索引扫描,以及相关知识点
  15. Nginx+keepalived 高可用双机热备(主从模式/双主模式)
  16. 老司机手把手教php,老司机手把手教你玩驱魔!纯小白无脑驱魔攻略
  17. alv edit and save all
  18. angular 模块构建_如何使用Angular和服务人员构建无需Internet即可运行的网站
  19. 各种智能卡(IC 卡、PSAM卡、CPU卡、M1卡、CPC卡)
  20. IDEA把项目打包为war包

热门文章

  1. 2021年全球及中国企业级路由器市场竞争格局分析,呈现出寡头竞争的市场格局「图」
  2. linux 进程killed_linux下运行Gaussian09进程被killed
  3. 主流服务器虚拟化技术厂商,各大服务器厂商虚拟化技术剖析
  4. LayaIDE + FGUI + Laya-SimpleFramework-Fairygui框架
  5. Python爬虫实战(2) 爬取中国土壤数据库部分数据
  6. 代码签名工具有哪些?好用的数字签名工具推荐
  7. Windows常用运行库--VC++、DirectX、.NET
  8. Qt网络编程实现TCP通信
  9. Tuxedo中间件开发和管理
  10. Pr 音频效果参考:特殊效果