echarts 渲染航线图
1、需求:根据数据渲染航线图
![](/assets/blank.gif)
通过vue+echarts 实现
过程中遇到bug:切换数据时,浏览器出现崩溃,原因是将echarts 实例定义在了vue的data 中
需要将echarts 实例定在script标签中,定义为全局变量
<template><div class="container"><div @click="handleChangeDate()">切换日期</div><div id="echarts-map"></div></div>
</template>
<script>
import world from "@/assets/world.json";
import tradeData1 from "@/assets/libs/data1.json";
import tradeData2 from "@/assets/libs/data2.json";
import * as echarts from "echarts";
let list = [];
let myChart = null;
export default {data() {return {pointArr:[],option:{},serieslinesData:[]};},beforeMount(){ },mounted() {var chartDom = document.getElementById("echarts-map");myChart = echarts.init(chartDom);// 1号jsonlist = tradeData1this.getSerieslines()this.drawChart();},methods: {// 切换日期handleChangeDate(){// 2号jsonlist = tradeData2myChart.clear()this.getSerieslines()this.$nextTick(()=>{this.option.series = this.serieslinesData;myChart.setOption(this.option,true);})},// 处理数据getSerieslines() {let res = [];list.forEach((item) => {this.pointArr.push({ value: item.source, },{ value: item.target,});res.push(this.getPontLine(item.flightNumber, [item.source, item.target]));res.push(this.getPoint())});this.serieslinesData = res;},// init chartdrawChart() {// 画背景echarts.registerMap("world", world);this.option = {backgroundColor: "#000", //背景色geo: {id: "world",map: "world",// 是否开启鼠标缩放和平移漫游 默认不开启 如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move' 设置成 true 为都开启roam: false,// 图形上的文本标签label: {show: false, // 是否显示对应地名},zoom: 1,// 地图区域的多边形 图形样式itemStyle: {borderWidth: 0.5, // 描边线宽 为 0 时无描边normal: {areaColor: "#29323c", //地图前景色borderColor: "#29323c", // 国界边框色},},legend: {selectedMode: false,},// 高亮状态下的多边形和标签样式emphasis: {label: {show: false, // 是否显示标签color: "#29323c", // 文字的颜色 如果设置为 'auto',则为视觉映射得到的颜色,如系列色},itemStyle: {areaColor: "#29323c", // 地图悬浮颜色},lineStyle: {color: ''}},// 自定义地区的名称映射nameMap: name,// 地图系列中的数据内容数组 数组项可以为单个数值},series: this.serieslinesData,tooltip: {trigger: "item",show: false},};myChart.clear();myChart.setOption(this.option,true);},getPoint() {return {type: "scatter",coordinateSystem: "geo",geoIndex: 0,zlevel: 4,label: {formatter: "{b}",position: "bottom",color: "#fff",fontSize: 12,distance: 10,show: true,},symbol: "circle",symbolSize: 3,itemStyle: {color: "rgb(22,255,255, 1)",// color: "#9F98FA",opacity: 1,},silent: true,data: this.pointArr,}},getPontLine(flightNumber, coords, color = "", width = 1) {return {name: flightNumber,type: "lines", // 飞行的路径线zlevel: 1,large: true,effect: {// 尾迹特效 需要单独 放在一个层show: true,period: 3, // 动画时间 -- 设置后 同时到达// constantSpeed:50,//配置特效图形的移动动画是否是固定速度,单位像素/秒,设置为大于 0 的值后会忽略 period 配置项trailLength: 0, // 特效尾迹的长度color: "#fff",symbolSize: 3,},blendMode: 'lighter',lineStyle: {normal: {color,width,curveness: 0.17, // 边的 曲度},emphasis: {color,}},data: [{fromName: "",toName: "",coords,},],}},},
};
</script><style lang="scss" scoped>
.container {height: 100%;width: 100%;
}#echarts-map {background-color: #333333;height: 100%;width: 100%;
}
</style>
echarts 渲染航线图相关推荐
- echarts5.0引入地图,背景渐变色,航线图,地图阴影
效果图如下,文章末尾附全部代码: 参考: 1.航线图 Vue Echarts飞机航线图_Kinghiee的博客-CSDN博客 2.地图阴影 echarts中国地图实现阴影效果&自定义设置_K ...
- echarts渲染一个风向图
今天给大家说一个用echarts渲染一个风向图,这里图上其实有三个要素,风向,风级和能见度,主要还是讲讲代码里面的坑 1.风向图标方向修改以及设置 var ownData = echarts.util ...
- echart 时间滚动_基于 ECharts 封装甘特图并实现自动滚屏
项目中需要用到甘特图组件,之前的图表一直基于 EChart 开发,但 EChart 本身没有甘特图组件,需要自行封装 经过一番鏖战,终于完成了... 我在工程中参考 v-chart 封装了一套图表组件 ...
- vue中使用ECharts实现折线图和饼图
在开发后台管理项目时,需要统计后台用户数据,以折线图和饼图的形式显示,这边采用apache-echarts来实现需求. 1.安装echarts和引入 npm install echarts --sav ...
- JavaScript高德地图中绘制echarts图表随地图移动
JavaScript高德地图中绘制echarts图表随地图移动** 先上效果图 实现方法如下: 使用高德地图"信息窗体",信息窗体AMap.InfoWindow的属性content ...
- echarts 热点泡泡图
echarts 热点泡泡图 1 .引入echarts的js文件 2.在html中定义echarts位置 3.在js中构造渲染echarts 4.效果显示 1 .引入echarts的js文件 <s ...
- 【Pyecharts|GEO-Lines】全球航线图的绘制
前言 航线图是基于Echarts官网的示例航线图通过Pyecharts来实现的,当然由于Pyecharts还是诸多限制,并不能100%还原. 本次实现了全球机场分布图和航线图效果(支持切换航司): 全 ...
- 浅谈 leaflet 地图插件的使用(制作飞机航线图)
前沿 接到需求飞行航班地图 需求整理 1.获取后台接口数据,且定时请求数据并渲染,体现航班的动态效果 2.在地图上分布给每组数据设同样的图标 3.给循环的marker设置鼠标事件(移入移出样式设置), ...
- 通过新浪股票接口 实现 Echarts K线图
股票行情K线图的效果 找到一个好的接口很重要~~(之前自己搜罗的一个接口查回来的数据 JSON key不带引号 恶心的一匹 然后 数据也不是很好用,直接舍弃) 股票行情图接口-日K历史数据 请求 ( ...
最新文章
- 《Android应用开发》——1.3节配置Eclipse
- jvm类加载、初始化
- python panda读取csv_python pandas 中文件的读写——read_csv()读取文件
- shell中if条件之数值的比较方法
- UML学习——类图(三)
- 2021“MINIEYE杯”中国大学生算法设计超级联赛(2)I love max and multiply(转化)
- 0限流电阻 stm32_上/下拉电阻
- gdal数据类型_科学网-gdal数据类型的代码的核心定义文件-林清莹的博文
- java格式化word文档_Java如何格式化word文档中的文本?
- 转:短小强悍的JavaScript异步调用库
- 惠普星14 指纹识别功能安装
- 详细微信小程序API文档
- 集合论—关系的自反、对称和传递闭包
- 升级LTS长期支持版|奇点云数据云平台发布DataSimba R3.8
- 如何将小程序代码上传到腾讯云服务器
- 系统检测到您疑似使用网页抓取工具访问本_12款最常使用的网络爬虫工具推荐...
- 移动端小案例(黑马面面)
- python报考软考哪个比较好_软考考什么比较好?
- C# CheckedListBox控件的用法 .
- Python最简单的文字游戏——数字炸弹
热门文章
- P图片放大不失真方法
- 实战篇-OpenSSL之调用EVP框架实现AES多种加密模式
- linux ramdisk 工具,Linux下用Busy Box制作Ramdisk全过程(转帖+部分完善) - 薛正华的专栏 - CSDN博客.pdf...
- Server Tomcat v7.0 Server at localhost failed to start.错误可能原因之一
- 教程-OBS刷课(岗位证)
- 计算机元器件发展阶段,详解中国电子元器件的不同发展阶段
- 【Flutter】ListView 列表高级功能 ( RefreshIndicator 下拉刷新组件 )
- EXCEL筛选重复记录
- 【第2篇】GooLeNet
- 提升效率,从这款智能挂灯开始