今天主要就是在搞echarts,我们都知道他为我们提供了丰富的api方法,使我们能够迅速的搭建图标。同时他里面还有许多的案例,

其中就有这么一个国内航线模拟迁徙的地图,如下所示:

而我们通常因为各种需求原因,不想要全国地图,而单单想要一个省,或一个市的地图,进行类似模拟迁徙的效果,就比如我接下来要做的这个效果图:

首先第一个案例中的demo代码我就不说了,可以到http://gallery.echartsjs.com/editor.html?c=xSyn_h87Sg 进行下载

接下来的步骤为:

1.

2.

3.这一步可以生成js 也可以生成json 两种方式引用的方法见下面的example.(我这边使用的是生成js)

这样就会自动生成并下载好一个js或是json格式的文件,将其导入到你的项目之中。

4.在编辑器中创建一个html文件

将刚刚生成的js或json导入进去(这里我仅演示js的方式)

注意:要先引入echart.min.js

5:不多说了,整个地图的代码如下:

 <!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
<title>供电图</title>
<link rel="stylesheet" type="text/css" href="../css/api.css" />
</head>
<body style="height: 100%; margin: 0 auto">
<div id="container" style="height: 100%"></div>
<script src="../script/echarts.min.js"></script>
<script src="../script/NingBo.js"></script>
<script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
var geoCoordMap = {
'宁波市区':[121.55,29.88],
'北仑区': [121.92000,29.848355],
'慈溪市':[121.3,30.23],
'奉化市':[121.32327,29.58],
'宁海县':[121.433654,29.303559],
'象山县':[121.810224,29.41238],
'余姚市':[121.15,30.03],
'镇海区':[121.64,30.05],
'鄞州区':[121.644648,29.70591]
}; var BJData = [
[{
name: '宁波市区'
}, {
name: '北仑区',
value: 10
}],
[{
name: '北仑区'
}, {
name: '慈溪市',
value: 15
}],
[{
name: '慈溪市'
}, {
name: '奉化市',
value:15
}],
[{
name: '奉化市'
}, {
name: '宁海县',
value:15
}],
[{
name: '宁海县'
}, {
name: '象山县',
value: 15
}],
[{
name: '象山县'
}, {
name: '余姚市',
value: 20
}],
[{
name: '余姚市'
}, {
name: '镇海区',
value: 15
}],
[{
name: '镇海区'
}, {
name: '鄞州区',
value:15
}],
[{
name: '鄞州区'
}, {
name: '宁波市区',
value: 15
}]
]; //自定义图标路径
var iconPath = 'image://light_icon.png'; 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','#F10900','#00A0E9'];
var series = [];
[
['', BJData]
].forEach(function(item, i) {
series.push({
name: item[0],
type: 'lines',
zlevel: 1,
//是否显示图标尾部效果
effect: {
show: true,
period: 6,
trailLength: 0.6,
color: '#FDF9AC',
symbolSize: 2
},
lineStyle: {
normal: {
color: color[i+3],
width: 0,
curveness: 0.2
}
},
data: convertData(item[1])
}, {
name: item[0],
type: 'lines',
zlevel: 2,
effect: {
show: true,
period: 6,
trailLength:0,
// symbol: planePath,
// symbol: 'arrow',
//自定义图标
symbol:iconPath,
symbolSize: 10
},
lineStyle: {
normal: {
color: color[i+1],
width: 1,
opacity: 0.4,
curveness: 0.2
}
},
data: convertData(item[1])
}, {
name: item[0],
type: 'effectScatter',
coordinateSystem: 'geo',
zlevel: 2,
rippleEffect: {
brushType: 'stroke'
},
label: {
normal: {
show: true,
position: 'right',
formatter: '{b}'
}
},
symbolSize: function(val) {
return val[2] / 8;
},
itemStyle: {
normal: {
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: '#89C3DB',
title: {
text: '浙江宁波供电路线',
subtext: '数据虚构',
left: 'center',
textStyle: {
color: '#fff'
}
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
top: 'bottom',
left: 'right',
data: [],
textStyle: {
color: '#fff'
},
selectedMode: 'single'
},
geo: {
//
map: 'ningbo',
label: {
emphasis: {
show: true
}
},
roam: true,
itemStyle: {
normal: {
areaColor: '#008a49',
borderColor: '#4b9673'
},
emphasis: {
areaColor: '#119859'
}
}
},
series: series
};
if (option && typeof option === "object") {
myChart.setOption(option, true);
}
</script>
</body>
</html>

6.关于一些自定义图标的修改,建议去http://www.iconfont.cn/ 中寻找

比如我的那个闪电图标就是在这个

Iconfont-阿里巴巴矢量图标库

找到的!

这个是echarts中修改自定义图标的详细方法!

希望对新手能有所帮助!

最新文章

  1. CSS SANS – 神奇!使用 CSS3 创建的字体
  2. 内核终端判断,微信?QQ?ipad?IE?移动?Google?opera……
  3. 32、shiro框架入门3.授权
  4. serv-u设置被动模式注意的问题
  5. MVC为模型增加正则表达式
  6. 好书推荐:《Game Programming Patterns》
  7. MVC4.0中下来列表框的,两种使用方法DropDownList
  8. TOP命令详解
  9. Server Error The server encountered an error and could not complete your request. 新建站点模版失败
  10. HDU 4635 多校第四场 1004 强联通
  11. cocos2dx 自己主动加入cpp文件到android.mk
  12. MyEclipse第一个Servlet程序 --解决Win7系统下MyEclipse与Tomcat连接问题
  13. SDUTOJ 1489 求二叉树的先序遍历
  14. STM32的USART DMA传输(转)
  15. Python3出现&quot;No module named &#39;MySQLdb&#39;&quot;问题-以及使用PyMySQL连接数据库
  16. 面试求职中你需要了解的Java面向对象
  17. 为什么mysql要做主从复制?
  18. [转贴]systemd 编写服务管理脚本
  19. Red Hat Enterprise Linux 7.4上安装Oracle 11.2.0.4
  20. Hystrix的用法demo

热门文章

  1. 我发起了一个 .Net 平台上的 产生式编程 开源项目 GP.Net
  2. 将 vue 挂在 window 对象上,实现能调用 elementUI 的组件
  3.  WPF 控件总结
  4. xml.sax 笔记
  5. Hive HiveServer2+beeline+jdbc客户端访问操作
  6. 在Centos7上安装配置ss-libev Proxifier
  7. 源码查看工具ctags+vim
  8. SD-SDI播出系统---使用GTX TX产生恢复时钟
  9. Styles in Windows Phone
  10. NDK学习笔记(三):DynamicKnobs的机制