前段时间在echarts社区,看见别人写的echarts迁徙图,学习并也写了一个

预览地址: https://gallery.echartsjs.com/editor.html?c=xYS-YtzOaf

// http://datav.aliyun.com/tools/atlas 阿里云地图选择器 下载需要的数据包
// 左上角 导入数据 插入到代码
let uploadedDataURL = "/asset/get/s/data-1573454139932-lW0kO573.json" // 标记点
let geoCoordMap = {
'西安': [108.948024, 34.263161],
'铜川': [108.979608, 35.016582],
'宝鸡': [107.14487, 34.369315],
'咸阳': [108.685117, 34.533439],
'渭南': [109.802882, 34.499381],
'延安': [109.49081, 36.596537],
'汉中': [107.028621, 33.077668],
'榆林': [109.741193, 38.290162],
'安康': [109.029273, 32.6903],
'商洛': [109.939776, 33.868319]
} // 给value一个随机值
const mapData = []
for (var key in geoCoordMap) {
mapData.push({
'name': key,
'value': parseInt((Math.random() + 1) * 150)
})
} // 输出json对象数组,value里包含坐标值和随机值
function convertData (data) {
const res = []
for (let i = 0; i < data.length; i++) {
const geoCoord = geoCoordMap[data[i].name]
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value)
})
}
return res
} // 设置目标点, 配置线条指向
function convertToLineData (data) {
const res = []
for (let i = 0; i < data.length; i++) {
// 起点
let fromCoord = geoCoordMap[data[i].name]
// 终点,这里设置的西安
let toCoord = [108.948024, 34.263161]
res.push([
{
coord: fromCoord,
value: data[i].value
},
{
coord: toCoord
}
])
}
return res
} // 解析地图数据包
$.getJSON(uploadedDataURL, (geoJson) => {
// 注册地图,传入数据
echarts.registerMap('echarts', geoJson) optionMap = {
timeline: {
show: false
},
baseOption: {
// 设置地图参数和样式
geo: {
show: true,
map: 'echarts',
roam: true,
zoom: 1,
// 地图中心点, 可调节显示的偏移量
center: [108.348024, 35.463161],
label: {
// 高亮文字隐藏
emphasis: {
show: false
}
},
itemStyle: {
normal: {
borderColor: '#FF0000',
borderWidth: 1,
areaColor: {
type: 'radial',
x: 0.5,
y: 0.5,
r: 0.8,
colorStops: [{
offset: 0,
// 0% 处的颜色
color: 'rgba(0, 0, 0, 0)'
},
{
offset: 1,
// 100% 处的颜色
color: 'rgba(0, 0, 0, .3)'
}]
},
shadowColor: 'rgba(0, 0, 0, 1)',
shadowOffsetX: -2,
shadowOffsetY: 2,
shadowBlur: 10
},
emphasis: {
// 鼠标悬浮高亮
areaColor: 'gray',
borderWidth: 0
}
}
}
},
options: [{
backgroundColor: '#4A4A4A',
xAxis: {
show: false
},
yAxis: {
show: false
},
series: [{
// 坐标点参数和样式
type: 'effectScatter',
coordinateSystem: 'geo',
data: convertData(mapData),
symbolSize: function (val) {
return val[2] / 10
},
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke'
},
label: {
normal: {
formatter: '{b}',
position: 'right',
show: true
}
},
itemStyle: {
normal: {
color: '#FF4500',
shadowBlur: 10,
shadowColor: '#FF4500'
}
}
},
{
// 线条参数和样式
type: 'lines',
// 变化频率
zlevel: 2,
effect: {
show: true,
// 箭头指向速度,值越小速度越快
period: 4,
// 特效尾迹长度,取值0到1,值越大,尾迹越长
trailLength: 0.05,
symbol: 'arrow',
// 图标大小
symbolSize: 5
},
lineStyle: {
normal: {
color: '#FF4500',
// 尾迹线条宽度
width: 1,
// 尾迹线条透明度
opacity: 1,
// 尾迹线条曲直度
curveness: 0.3
}
},
data: convertToLineData(mapData)
}]
}]
}
myChart.setOption(optionMap)
})

echarts迁徙图的更多相关文章

  1. Echarts4+EchartsGL 3D迁徙图(附源码)

    最近遇到些Echarts迁徙图问题,在实现二维地图的迁徙图后开始开发3D迁徙图,在网上一查,发现3D版本迁徙图资料较少,自己研究并借鉴一些资料后写了一个小demo,希望能帮大家少走些弯路,共同学习. ...

  2. vue中使用 echarts3.0 或 echarts2.0 (模拟迁徙图,折线图)

    一.echarts3.0(官网: http://echarts.baidu.com/) 首先通过npm安装echarts依赖,安装的为3.0版本 npm install echarts -s 也可以使 ...

  3. leaflet 结合 Echarts4 实现迁徙图(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  4. arcgis api 4.x for js 集成 Echarts4 实现模拟迁徙图效果(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 4.x for js:esri 官网 api,里面详细的介绍 arcgis api 4.x 各个类 ...

  5. echarts雷达图

    用echarts展现雷达图的定制 <!doctype html> <html> <head> <meta charset="utf-8"& ...

  6. 手把手教你DIY一个春运迁徙图(一)

    换了新工作,也确定了我未来数据可视化的发展方向.新年第一篇博客,又逢春运,这篇技术文章就来交给大家如何做一个酷炫的迁徙图(支持移动哦).(求star 代码点这里) 迁徙图的制作思路分为静态的元素和变换 ...

  7. echarts柱图自定义为硬币堆叠的形式

    看这标题,可能会有一些人不太明白,那么直接上图,就是柱图展示形式如下图(兼容IE8) 要想实现这样展示效果.我们想用echarts直接实现不行的,即使是纹理填充也不可行的,但是我们可以借助echart ...

  8. 实现Echarts折线图的虚实转换

    需求:医院的体温单,在统计体温时,对于正常情况下统计的体温数据,需要显示实线:对于进行物理降温后统计的体温数据,需要显示虚线. 现有的体温单是运用 Echarts 折线图,统一用实线显示.因此在这基础 ...

  9. 使用echarts水球图

    使用echarts水球图 官方实例中没有水球图样式,当我们需要用到水球图的时候需要下载echarts-liquidfill.js. 使用 在echarts之后引入 echarts-liquidfill ...

随机推荐

  1. 自签SSL证书

    0.介绍 自己开发的使用了SSL协议的软件,通常没必要从证书签发机构那里来获取证书,自签证书成了必要的选择.自签证书还可以用来实现客户端登录认证. 1.创建CA 创建CA的私钥 openssl gen ...

  2. coding++:js实现基于Base64的编码及解码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. ElasticSearch 倒排索引

    倒排索引 倒排表以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况. 由于每个字或词对应的文档 ...

  4. 树莓派 zeroWH 使用笔记

    更新raspbian    apt-get update    apt-get upgrade 删除python2    sudo rm /usr/bin/python安装python3    sud ...

  5. 使用kibana操作elasticsearch7.x 教程

    由于elasticsearch7.x取消了type(类型的概念)对应数据库表的概念 添加一个索引 PUT 索引名 { "settings": { "number_of_s ...

  6. P3381 【模板】最小费用最大流(MCMF)

    P3381 [模板]最小费用最大流 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入格式 第一行包含四个正整数N ...

  7. P1044 栈(递归、递推、卡特兰、打表)

    P1044 栈 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈). 栈的重要 ...

  8. docker 容器容器之间网络通信 docker-compose.yaml 配置固定ip

    1.创建自己的桥接网络 $ docker network create --subnet=172.18.0.0/16 mynetwork 2.docker-compose.yaml 文件格式demo ...

  9. python--Django(后台管理模块)

    一.准备工作 1.创建应用 python manage.py startapp test 2.定义模型类 (1)打开刚创建的app目录test,打开models.py文件 (2)代码如下 from d ...

  10. MTK Android Driver :Lcm

    MTK Android Driver :lcm 1.怎样新建一个LCD驱动 LCD模组主要包括LCD显示屏和驱动IC.比如LF040DNYB16a模组的驱动IC型号为NT35510.要在MTK6577 ...