灵魂画手,在echarts上绘制绚丽的铁路线

灵魂画手,在echarts上绘制绚丽的铁路线

工作中我们总是会遇到许多“无敌”的需求,当我正在专心搬砖时,突然被老板打断,他告诉我要在echarts地图上画一条铁路线, 这,官方好像没有这些api,但谁让我是一个勇于挑战的人呢,于是我在百度里遨游了半个多小时后,我只看到下面这些,传送门:https://gallery.echartsjs.com/editor.html?c=xCDj68xRo1 但这并不符合我的需求,我想要线路图,但不是这种只有终点和起点的线路,而是类似于公路一样的线路,在掉了两根头发之后,我找到了下面的例子 传送门:https://blog.csdn.net/bolanlaike/article/details/86234909 从这我得到了启发,于是我开始绘制铁路图,我用的vue,所以代码可能不一样,但我们主要看options,首先加载准备好的地图,想要地图文件的小伙伴可以看我这篇博客 https://blog.csdn.net/qq_32610671/article/details/103199936 然后配置geo

axios.get("./static/json/map/map.json", {}).then(data => {//加载地图文件

// console.log(data);

echarts.registerMap("map",data.data);

this.chartOptions= {

geo: {

map: 'map',

zoom: 4,

roam:true,

center:[116.4632992051,40.2979563489],

label:{

show:true,

offset: [1, 1000],

color:"#fff"

},

itemStyle: {

color: '#1A3F57', //地图背景色

borderColor: '#516a89', //省市边界线00fcff 516a89

borderWidth: 1

},

emphasis: {

itemStyle: {

color: '#87CEEB' //悬浮背景

},

}

},

backgroundColor:"#013954",

};

})

效果如下: 然后我们配置lines,准备画线,我的思路是在一条lines上加入多个转弯点,这样会比较形象,于是找了40多个点,分享一下我用的找点工具,在线经纬度查询:http://www.gpsspg.com/maps.htm 代码如下:

var trainLines=[

[113.2299915090,39.9740137595],

[113.2440222746,40.0112798938],

[113.3205599644,39.9793044406],

[113.5897397104,39.9935195891],

[113.6323071328,40.0198128677],

[113.8410727439,40.0150987625],

[114.4927191451,40.2099428870],

[114.6972954652,40.2848528330],

[114.7763247358,40.2492769771],

[115.1237282065,40.3351402443],

[115.3980349329,40.3365057085],

[115.5288097250,40.3541452998],

[115.6386383872,40.3554242305],

[115.7347770152,40.3962330991],

[115.8220218461,40.4553254384],

[115.9331074866,40.5098818055],

[115.9976856501,40.4771481623],

[116.0787930898,40.4188610923],

[116.1805699260,40.3966647294],

[116.3496784000,40.3334798038],

[116.4363997773,40.2848511711],

[116.4632992051,40.2979563489],

[116.5608981005,40.2807742090],

[116.6353132497,40.2810950813],

[116.7438012799,40.2510310010],

[116.8890266543,40.1809692086],

[117.0436772920,40.1081611627],

[117.0881500867,40.0402227345],

[117.1534061331,39.9808125645],

[117.3257262736,40.0097217651],

[117.4160471025,40.0073872152],

[117.4984682179,39.9753135523],

[117.5904577438,39.9774022050],

[117.6783250968,39.9584408860],

[117.8170650554,40.0899211878],

[117.9955507123,40.2273765912],

[118.3897079730,40.1634100519],

[118.5737399463,40.1844054101],

[118.8497693728,40.0457762723],

[119.0337606296,40.0068410146],

[119.2590000686,40.0363047577],

[119.4159339421,39.9429499750],

[119.5889017503,39.9665806839],

[119.6953706089,39.9866073744],

[119.7109338177,39.9490638606],

[119.6841482180,39.9455054281],

];//火车线路

series: [

{type:"lines",

coordinateSystem: 'geo',// 这句的意思是连线是基于地理坐标的,geo组件将在下面给出

polyline: true,// 这表示连线是否为多端点的连线

data: [{

coords: trainLines

}],

lineStyle: {

color: "black",

width:4,

},

progressiveThreshold: 500,

progressive: 200,

},]

效果如下: 于是我得到了这样一坨黑线,但还是不够形象,总觉得差了点东西,对,是黑白相间的铁路,在我经过两根头发的消耗后,我又找到了解决办法,那就是在画一条一模一样的虚线,颜色变为白色这样就会出现,一截黑一截白的样子,嗯,完美

series: [

{type:"lines",

coordinateSystem: 'geo',// 这句的意思是连线是基于地理坐标的,geo组件将在下面给出

polyline: true,// 这表示连线是否为多端点的连线

data: [{

coords: trainLines

}],

lineStyle: {

color: "black",

width:4,

},

progressiveThreshold: 500,

progressive: 200,

},

{type:"lines",

coordinateSystem: 'geo',// 这句的意思是连线是基于地理坐标的,geo组件将在下面给出

polyline: true,// 这表示连线是否为多端点的连线

data: [{

coords: trainLines

}],

lineStyle:{

color:"#fff",

width:4,

type:"dashed",

},

progressiveThreshold: 500,

progressive: 200,

},]

于是得到了这样一幅图 完全ok,后期优化的时候我又加入了一个小火车图标,图标使用了svgpath格式,从阿里巴巴矢量图标网下载的,具体可以参考这里: https://www.iconfont.cn/ https://www.echartsjs.com/zh/option.html#series-lines.effect.symbol 并让它在铁路线上循环移动,感觉还是很不错的,最终代码如下:

最终效果:

ok,大功告成,摸着我略微发凉的头皮,目光远眺,我仿佛看到了那天夕阳的奔跑,那是我逝去的青春!!!

相关推荐

美的集团 :在全球拥有约 200 家子公司、33 个 研发中心和 40 个主要生产基地,员工超过 19 万人,业务遍及 ...
粽子叶清洗技巧—3 遍冲洗法,干净卫生不苦涩,比市场买的还新鲜
世界杯再现天价转播权!咪咕、抖音或砸下超10亿,鹿晗、黄健翔同台解说
向日葵永不掉线设置技巧
在哪个应用商店能下载365

向日葵永不掉线设置技巧

📅 08-21 👁️ 904
回顾2016年世界杯决赛中的经典进球(从梅西到博格巴,重温历届决赛的绝妙瞬间)
关羽”陆树铭病逝1年:他的第二任妻子含泪追忆心痛往事
63岁的周润发也太帅了吧!直男们学学啊!
365需要什么系统

63岁的周润发也太帅了吧!直男们学学啊!

📅 07-22 👁️ 744
《王国纪元》攻略之升级小技巧
365需要什么系统

《王国纪元》攻略之升级小技巧

📅 08-11 👁️ 8499
西红柿饺子的做法与步骤
365需要什么系统

西红柿饺子的做法与步骤

📅 07-10 👁️ 1172