首先需要获取地图JSON数据包,点此下载(Echarts官方地图数据,包含世界、中国,及国内各省数据)。

实现效果如图:

代码如下:

<!--

此示例下载自 https://echarts.apache.org/examples/zh/editor.html?c=map-HK

-->

<!DOCTYPE html>

<html lang="zh-CN" 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://fastly.jsdelivr.net/npm/jquery"></script>

<script type="text/javascript" src="https://fastly.jsdelivr.net/npm/echarts@5.4.0/dist/echarts.min.js"></script>

<script type="text/javascript">

$.getJSON('./china.json', function(china)

{

echarts.registerMap('china', china);

var myChart = echarts.init(document.getElementById('container'));

myChart.showLoading(

{

text: '加载中...',

color: '#c23531',

fontSize: '28px',

textColor: '#000',

maskColor: 'rgba(255, 255, 255, 0.2)',

zlevel: 0,

});

var scale = 1;

var geoCoordMap = {};

echarts.util.each(china.features, function(dataItem, idx)

{

geoCoordMap[dataItem.properties.name] = dataItem.properties.cp;

});

var mapData =

[

{from: '青海', to: '青海', value: 90, color: '#1DE9B6'},

{from: '青海', to: '安徽', value: 80, color: '#ACC5E9'},

{from: '青海', to: '甘肃', value: 70, color: '#FFDB5C'},

{from: '青海', to: '宁夏', value: 60, color: '#3D552A'},

{from: '青海', to: '山西', value: 50, color: '#B4B9FF'},

{from: '青海', to: '陕西', value: 40, color: '#A6C84C'},

{from: '青海', to: '广东', value: 30, color: '#FFA022'},

{from: '青海', to: '重庆', value: 20, color: '#46BEE9'},

{from: '青海', to: '西藏', value: 10, color: '#FAC55C'}

];

var convertLineData = function(data)

{

var res = [];

for(var i = 0; i < data.length; i++)

{

var dataItem = data[i];

var fromCoord = geoCoordMap[dataItem.from];

var toCoord = geoCoordMap[dataItem.to];

if(fromCoord && toCoord)

{

res.push(

{

fromName: dataItem.from,

toName: dataItem.to,

coords: [fromCoord, toCoord],

value: dataItem.value,

color: dataItem.color

});

}

}

return res;

};

var convertPointData = function(data)

{

var res = [];

for(var i = 0; i < data.length; i++)

{

var dataItem = data[i];

var toCoord = geoCoordMap[dataItem.to];

if(toCoord)

{

res.push(

{

name: dataItem.to,

value: toCoord,

count: dataItem.value,

color: dataItem.color

});

}

}

return res;

}

var option =

{

tooltip:

{

trigger: 'item',

axisPointer:

{

type: 'shadow'

},

textStyle:

{

fontSize: 12 * scale,

},

formatter: function(params)

{

let returnStr = '';

if(params.componentSubType == 'effectScatter')

{

returnStr += params.marker;

returnStr += params.name + ':' + params.data.count;

}

else if(params.componentSubType == 'lines')

{

returnStr += params.marker;

returnStr += params.data.fromName + ' -> ' + params.data.toName;

returnStr += ':' + params.data.value;

}

return returnStr;

}

},

geo:

{

map: 'china',

aspectScale: 1,

zoom: 1.25,

label:

{

normal:

{

show: false,

},

emphasis:

{

show: true,

fontSize: 12 * scale,

color:"#fff"

}

},

itemStyle:

{

normal:

{

areaColor:

{

x: 0, y: 0, x2: 0, y2: 1,

colorStops:

[

{

offset: 0,

color: '#0e309b'

},

{

offset: 1,

color: '#0e309b'

},

],

},

borderColor: '#2abdee',

borderWidth: 2 * scale,

},

emphasis:

{

areaColor:

{

x: 0, y: 0, x2: 0, y2: 1,

colorStops:

[

{

offset: 0,

color: '#fff'

},

{

offset: 1,

color: '#2b91b7'

},

],

},

}

},

},

series:

[

{

type: 'effectScatter',

coordinateSystem: 'geo',

data: convertPointData(mapData),

symbolSize: 15 * scale,

showEffectOn: 'render',

rippleEffect:

{

brushType: 'stroke'

},

hoverAnimation: true,

label:

{

normal:

{

show: true,

formatter: function(param)

{

return param.data.name;

},

position: 'right',

fontSize: 12 * scale,

color: '#fff',

}

},

itemStyle:

{

normal:

{

color: function(param)

{

return param.data.color;

},

shadowBlur: 10,

shadowColor: '#fff'

}

},

zlevel: 1

},

{

type: 'lines',

zlevel: 2,

effect:

{

show: true,

period: 5,

trailLength: 0.2,

symbol: 'arrow',

symbolSize: 4 * scale,

},

lineStyle:

{

normal:

{

color: function(param)

{

return param.data.color;

},

width: 1 * scale,

opacity: 0.2,

curveness: .3

}

},

data: convertLineData(mapData)

},

]

};

myChart.hideLoading();

myChart.setOption(option, true);

myChart.resize();

})

</script>

</body>

</html>

遇到的问题
 $.getJSON 请求会报错,跨域问题。

解决:1、json文件放到服务器上,直接请求服务器上的地址。

2、只调试的话,设置谷歌浏览器

请求模拟数据报错: Access to XMLHttpRequest at ‘file:///C:/Users/Administrator/Desktop/test/AJAX/demo_test.txt’ from origin ‘null’ has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

1、右键chrome,选择属性,在“快捷方式”下的“目标”中添加" --allow-file-access-from-files"(最前面有个空格),重启chrome即可
2、复制项目的路径,在浏览器上重新打开

原文链接:https://blog.csdn.net/weixin_45784582/article/details/108767358

Echarts 在地图上绘制流向图相关推荐

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

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

  2. plotly系列| 使用plotly在地图上绘制散点图和密度图

    目录 Plotly简介 在地图上制作散点图和密度图 1 . 在python中使用pip命令安装 2 .导入包 3 .读取文件 4 . 在地图上绘制散点图 5 . 绘制密度图,其属性与绘制散点图相似 关 ...

  3. 在Arcgis地图上绘制Echarts热力图(Heatmap)

    在Arcgis地图上绘制Echarts热力图(Heatmap) 2018-08-30 10:18 [原创]本文地址:https://www.cnblogs.com/qiaoge0923/p/95623 ...

  4. python绘制彩色地震剖面_在地图上绘制饼图时“爆炸”楔形图(Python,matplotlib)...

    所以我成功地在地图上绘制了饼图作为标记轴向散射,但我遇到了一些问题,一些楔子"爆炸"出了饼图.我似乎在我的代码中找不到原因,也无法在网上找到解释.这段代码基于示例here,一位同事 ...

  5. 详解python 利用 pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)、动态流向图

    转载: 详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图) Pyecharts绘制全球流向图 pyecharts中文教程官网 目录  安装对应的python模块 世界 ...

  6. android百度地图轨迹实现,android 获取GPS经纬度在百度地图上绘制轨迹

    实现将一组GPS模块获取的经纬度数据在百度地图上绘制轨迹 1.将经纬度转换成百度地图坐标 /** * 标准的GPS经纬度坐标直接在地图上绘制会有偏移,这是测绘局和地图商设置的加密,要转换成百度地图坐标 ...

  7. Matlab运用mapping包在地图上绘制散点图(热力图)

    Matlab运用mapping包在地图上绘制散点图(热力图) 一.前言 Mapping Toolbox是Matlab提供的,一整套包含许多函数跟图形用户界面的工具箱:它可以帮助用户分析几何空间方面的数 ...

  8. android地图画线,绘制折线-在地图上绘制-开发指南-Android 轻量版地图SDK | 高德地图API...

    地图上绘制的线是由 Polyline 类定义实现的,线由一组经纬度(LatLng对象)点连接而成. 绘制一条线 与点标记一样,Polyine的属性操作集中在PolylineOptions类中,添加一条 ...

  9. android百度地图api两点画线,android百度地图:在地图上绘制点、线、多边形、圆形和文字...

    转载自:http://blog.csdn.net/rt77777/article/details/9186691 首先介绍一个类:GraphicsOverlay 这是一个在地图上绘制图形的overla ...

最新文章

  1. 【Groovy】自定义 Xml 生成器 BuilderSupport ( 创建 XmlNode 节点 | 管理 XmlNode 节点并将根节点转为 Xml 信息 | 完整代码示例 )
  2. 计算机基本水平测试内容,浙江师范大学计算机基础水平测试大纲(2018级新生使用)...
  3. 移动客户端与服务器端安全通信方案
  4. 基于dnn的车牌识别_自然场景中文文字识别,身份证火车票都能识别
  5. 【EMV L2】SDA静态数据认证处理流程
  6. 最新电脑为什么用ghost无法安装系统?安装版正常,是何原因?
  7. [Usaco2014 Open]Gold Fair Photography(hash)
  8. IIS未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
  9. 低代码工具是软件维护的噩梦?
  10. linux cc脚本,Linux运维知识之Linux简单处理CC攻击shell脚本
  11. unix 连接 mysql_UNIX域套接字连接mysql
  12. SQL:postgresql中在查询结果中将字符串转换为整形或浮点型
  13. 获得当前时间,刻度为一千分一秒
  14. java 下载excel到本地_java已知下载链接将Excel文件利用httpclient下载到本地
  15. 微软商店无法下载应用,VS2019无法下载插件问题解决方案
  16. Cannot access a disposed object. A common cause of this error is disposing a context that ...问题解决
  17. 100个c#初学者编程实例_C#编程:初学者入门
  18. 从Anker到SHEIN,对不起我要放弃Amazon了
  19. JavaSE基础知识汇总
  20. WEB数据库管理平台kb-dms:本地安装与启动教程【二】

热门文章

  1. mysql服务启动失败(Aborting)
  2. deepin win10字体_win10下安装deepin系统(小白版)
  3. 标准BP算法用Python编程实现
  4. Windows beanstalkd启动
  5. 洛谷 P1002 过河卒
  6. 基于模型的系统工程(MBSE)与设计(MBD)的关系思考
  7. 第七讲:基于模型的系统工程(MBSE)|达索系统
  8. 大数据时代的品牌公关策略
  9. idea怎么设置为黑色背景
  10. lammps案例:Al冲击过程模拟案例代码