效果图

上代码

<!DOCTYPE html>
<html style="height: 100%"><head><meta charset="utf-8"></head><body style="height: 100%; margin: 0"><div id="container" style="height: 100%"></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat/dist/ecStat.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/dataTool.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/china.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/world.js"></script><script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=xfhhaTThl11qYVrqLZii6w8qE5ggnhrY&__ec_v__=20190126"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/bmap.min.js"></script><script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
var geoCoordMap = {'上海': [121.4648,31.2891],'东莞': [113.8953,22.901],'东营': [118.7073,37.5513],'中山': [113.4229,22.478],'临汾': [111.4783,36.1615],'临沂': [118.3118,35.2936],'丹东': [124.541,40.4242],'丽水': [119.5642,28.1854],'乌鲁木齐': [87.9236,43.5883],'佛山': [112.8955,23.1097],'保定': [115.0488,39.0948],'兰州': [103.5901,36.3043],'包头': [110.3467,41.4899],'北京': [116.4551,40.2539],'北海': [109.314,21.6211],'南京': [118.8062,31.9208],'南宁': [108.479,23.1152],'南昌': [116.0046,28.6633],'南通': [121.1023,32.1625],'厦门': [118.1689,24.6478],'台州': [121.1353,28.6688],'合肥': [117.29,32.0581],'呼和浩特': [111.4124,40.4901],'咸阳': [108.4131,34.8706],'哈尔滨': [127.9688,45.368],'唐山': [118.4766,39.6826],'嘉兴': [120.9155,30.6354],'大同': [113.7854,39.8035],'大连': [122.2229,39.4409],'天津': [117.4219,39.4189],'太原': [112.3352,37.9413],'威海': [121.9482,37.1393],'宁波': [121.5967,29.6466],'宝鸡': [107.1826,34.3433],'宿迁': [118.5535,33.7775],'常州': [119.4543,31.5582],'广州': [113.5107,23.2196],'廊坊': [116.521,39.0509],'延安': [109.1052,36.4252],'张家口': [115.1477,40.8527],'徐州': [117.5208,34.3268],'德州': [116.6858,37.2107],'惠州': [114.6204,23.1647],'成都': [103.9526,30.7617],'扬州': [119.4653,32.8162],'承德': [117.5757,41.4075],'拉萨': [91.1865,30.1465],'无锡': [120.3442,31.5527],'日照': [119.2786,35.5023],'昆明': [102.9199,25.4663],'杭州': [119.5313,29.8773],'枣庄': [117.323,34.8926],'柳州': [109.3799,24.9774],'株洲': [113.5327,27.0319],'武汉': [114.3896,30.6628],'汕头': [117.1692,23.3405],'江门': [112.6318,22.1484],'沈阳': [123.1238,42.1216],'沧州': [116.8286,38.2104],'河源': [114.917,23.9722],'泉州': [118.3228,25.1147],'泰安': [117.0264,36.0516],'泰州': [120.0586,32.5525],'济南': [117.1582,36.8701],'济宁': [116.8286,35.3375],'海口': [110.3893,19.8516],'淄博': [118.0371,36.6064],'淮安': [118.927,33.4039],'深圳': [114.5435,22.5439],'清远': [112.9175,24.3292],'温州': [120.498,27.8119],'渭南': [109.7864,35.0299],'湖州': [119.8608,30.7782],'湘潭': [112.5439,27.7075],'滨州': [117.8174,37.4963],'潍坊': [119.0918,36.524],'烟台': [120.7397,37.5128],'玉溪': [101.9312,23.8898],'珠海': [113.7305,22.1155],'盐城': [120.2234,33.5577],'盘锦': [121.9482,41.0449],'石家庄': [114.4995,38.1006],'福州': [119.4543,25.9222],'秦皇岛': [119.2126,40.0232],'绍兴': [120.564,29.7565],'聊城': [115.9167,36.4032],'肇庆': [112.1265,23.5822],'舟山': [122.2559,30.2234],'苏州': [120.6519,31.3989],'莱芜': [117.6526,36.2714],'菏泽': [115.6201,35.2057],'营口': [122.4316,40.4297],'葫芦岛': [120.1575,40.578],'衡水': [115.8838,37.7161],'衢州': [118.6853,28.8666],'西宁': [101.4038,36.8207],'西安': [109.1162,34.2004],'贵阳': [106.6992,26.7682],'连云港': [119.1248,34.552],'邢台': [114.8071,37.2821],'邯郸': [114.4775,36.535],'郑州': [113.4668,34.6234],'鄂尔多斯': [108.9734,39.2487],'重庆': [107.7539,30.1904],'金华': [120.0037,29.1028],'铜川': [109.0393,35.1947],'银川': [106.3586,38.1775],'镇江': [119.4763,31.9702],'长春': [125.8154,44.2584],'长沙': [113.0823,28.2568],'长治': [112.8625,36.4746],'阳泉': [113.4778,38.0951],'青岛': [120.4651,36.3373],'韶关': [113.7964,24.7028]
};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}],[{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 GZData = [[{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}]
];
//可以通过 'path://' 将图标设置为任意的矢量路径。这种方式相比于使用图片的方式,
// 不用担心因为缩放而产生锯齿或模糊,而且可以设置为任意颜色。
// 路径图形会自适应调整为合适的大小。路径的格式参见 SVG PathData(https://www.w3.org/TR/SVG/paths.html#PathData)。
// 可以从 Adobe Illustrator 等工具编辑导出。
// 下面示例中就是使用自定义 path 的 symbol 表现飞机的图形。
// Tip: symbol 的角度会随着轨迹的切线变化,如果使用自定义 path 的 symbol,,
// 需要保证 path 图形的朝向是朝上的,这样在 symbol
// 着轨迹运动的时候可以保证图形始终朝着运动的方向。
var planePath ='path://M887.7 885.7c-0.8 0-1.5 0-2.3-0.1-181.4-21.2-406-21.1-706.9 0.1h-1.4c-0.7 0-16.9 0-34.8-4.1-27.9-6.3-45.8-18.9-53.1-37.4-1.7-4.3-1.9-9.1-0.5-13.5 9.4-29.7 41.8-39.8 70.8-43.9 32.4-231.3 20.6-434.3-36.2-620.2-2.1-6.9-0.3-14.4 4.6-19.6 5-5.2 12.3-7.4 19.3-5.6 115.7 28.7 234.7 56.8 307.3 57.2 136.1 0.3 276.2-18.4 428.3-57.2 6.6-1.7 13.5 0.1 18.5 4.7 5 4.6 7.3 11.4 6.2 18-6 35.9-12.9 71.7-19.6 106.3-21.8 113.4-44.4 230.6-38 363.2v1.5c-0.7 26.6 2.3 102.1 24.8 131.8 35.9 47.3 33.1 97.9 32.9 100-0.4 5.5-2.9 10.6-7.1 14.1-3.6 3-8.2 4.7-12.8 4.7z m-754.8-49.8c10.2 6.1 29.5 9.6 43.5 9.8 289.9-20.4 509.9-21.3 689.4-2.5-2.7-14.2-8.8-33.5-22.9-52-15.4-20.3-25.6-53.3-30.3-97.9-3.1-29.1-2.7-53.6-2.6-58.4-6.6-137.1 16.4-256.5 38.7-372 4.7-24.7 9.6-49.9 14.2-75.3-144 34.6-277.9 51.3-408.4 51-69.7-0.3-176-23.9-283.1-50.1 24.8 90.8 39.7 187.1 44.3 286.8 4.8 104.2-1.5 216.1-18.7 332.6-1.4 9.2-8.8 16.2-18.1 17-26.2 2.2-39.4 6.7-46 11zM177 805z';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 series = [];
[['北京', BJData], ['上海', SHData], ['广州', GZData]].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,symbol: ['none', 'arrow'],symbolSize: 10,effect: {show: true,period: 6,trailLength: 0,symbol: planePath,symbolSize: 15},lineStyle: {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'},label: {show: true,position: 'right',formatter: '{b}'},symbolSize: function (val) {return val[2] / 8;},itemStyle: {color: color[i]},data: item[1].map(function (dataItem) {return {name: dataItem[1].name,value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value])};})});
});option = {backgroundColor: '#404a59',title : {text: '模拟迁徙',subtext: '数据纯属虚构',left: 'center',textStyle: {color: '#fff'}},tooltip: {trigger: 'item'},legend: {orient: 'vertical',top: 'bottom',left: 'right',data: ['北京 Top10', '上海 Top10', '广州 Top10'],textStyle: {color: '#fff'},selectedMode: 'single'},geo: {map: 'china',label: {show: false},roam: true,itemStyle: {areaColor: '#323c48',borderColor: '#404a59'},emphasis: {label: {show: true},itemStyle: {areaColor: '#2a333d'}}},series: series
};;
if (option && typeof option === "object") {myChart.setOption(option, true);
}</script></body>
</html>

注意点:

  • SVG PathData是啥?
    实际就是<path>标签的 d 属性。“M” 开头,“z” 结尾。
  • 哪里可以搞到SVG矢量图标?

Echarts开发地图迁徙动态图(geo-lines)相关推荐

  1. Echarts离线地图开发--实现web端 初始化世界地图,其他国家钻取到行政区,中国钻取到省市区的展示

    背景:公司原本使用高德在线地图,但是由于有的客户是使用内网的,造成地图打开是空白的.于是,增加了离线地图功能,通过页签切换地图,默认展示在线地图,点击离线页签时,展示的是echarts离线地图. 重要 ...

  2. vue全家桶+Echarts+百度地图,搭建数据可视化系统

    本文章篇幅略长,内容有点多 大佬可根据目录选择性查阅 新人可一步步来阅读 1 前言 1.1 业务场景 突然接到产品说要做一个数据监控的系统.有线图.柱状图.地图,类似于数据可视化的方式. 本人之前从未 ...

  3. java echarts 散点图,echarts在地图上绘制散点图(任意点)

    项目需求:在省份地图上绘制散点图,散点位置不一定是哪个城市或哪个区县,即任意点 通过查询官网文档,找到一个与需求类似的Demo:https://www.echartsjs.com/gallery/ed ...

  4. echarts实现地图飞线

    echarts实现地图飞线 echarts画地图 echarts画地图 由于地图需要省市区经纬度,需要geoJSON数据,我们使用aliyun官方的JSON数据,以中国地图为例(链接: link.). ...

  5. 解决echarts中地图重叠问题

    在使用Echarts开发项目时,经常会遇到地图组件的开发,困扰许久的地图重叠问题,无意间在echarts官方文档中找到了解决方案. 示例: 如上图,其代码如下: geo: {backgroundCol ...

  6. echarts+高德地图绘制散点+流线图

    1.安装echarts高德地图插件 npm install echarts-extension-amap –save 2.在高德开放平台注册账号并申请Key 1. 登陆之后,在进入「应用管理」 页面「 ...

  7. 【echarts 中国地图射线版本】vue实现中国地图航线动画效果,地图上添加散点效果【详细注释,通俗易懂】

    先上效果图 前置条件,必看 首先你需要安装echarts并引入 然后你需要下载china.json文件并注册引入,不然不生效 当然很多新手可能不知道china.json在哪里下载,因为官方已经没有了, ...

  8. VUE 中实现echarts中国地图 人口迁徙

    VUE 中实现echarts中国地图 人口迁徙 效果图: 安装Echarts依赖 要在vue中使用Echarts 需要先安装依赖 npm install echarts --save 这是我的Echa ...

  9. echarts实现地图【河南】

    echarts实现地图 文章以河南省为例 一.先下载eacherts相关js文件(echarts.min.js)和echarts使用到的地图插件(map) ecarts.min.js在echarts官 ...

最新文章

  1. 表格布局(tablelayout)
  2. android drawpath填充,Android如何用图片来填充Path封闭路径
  3. DNN使用非80端口和总是跳转到http://localhost问题的解决
  4. 几种限流器(RateLimiter)原理与实现
  5. SSM整合框架实现发送邮件功能
  6. 一,数据库基础,MySQL安装,配置文件,语法
  7. EularProject 39:给周长推断构成直角三角形个数
  8. Go语言学习Day03
  9. 正面刚谷歌苹果,diss了BAT及友商,商汤科技说自己是一只“黑羊”
  10. 【Linux】POSIX信号量
  11. 记录下一个带内购的iOS app的上架App Store历程
  12. 股票 市盈率(PE)
  13. mysql server 卸载不了_Mysql卸载问题Start Server卡住报错解决方法
  14. 推荐一个GitHub上牛b的Java学习项目,已整理成了文档版本
  15. 充满希望的新的一年!
  16. 计算机网络实验:实验三 路由器的基本配置
  17. 支付平台服务器被攻击怎么应对?
  18. (附源码)springboot图书管理系统 毕业设计 160934
  19. 爪哇部落 新生选拔赛 2020
  20. Docker镜像文件存放

热门文章

  1. 第三讲:股票买卖 III
  2. Windows cmd命令 个人常用0529
  3. 仿网易云音乐播放列表、皮肤样式、歌词滚动、轮播图等
  4. 计算机远程桌面相关服务,win7打开远程桌面服务,win7计算机无法远程访问
  5. Android会加速地球的毁灭?
  6. java将excel转base64_将图片的base64 代码转换为 图片(jpg)
  7. 二维码登录(三)扫码登录
  8. 湖北陈浩计算机应用,陈浩-湖大信息科学与工程学院
  9. 如何查看电脑最大支持多少GB内存
  10. 计算机专业学生参加igem,iGEM:走向国际舞台的竞赛,到底有何魅力?