echarts + 百度地图 飞线

效果:
在这里插入图片描述
代码地址

集成js

  <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=你自己申请得百度地图ak"></script>
        <script  src="./dist/echarts.min.js" ></script>
        <script src="./dist/extension/bmap.min.js"></script>

添加div

 <div id="main" style="width: 600px;height:400px;"></div>

设置地图样式

 let   mapStyle = {
                styleJson: [
                    {
                        'featureType': 'water',
                        'elementType': 'all',
                        'stylers': {
                            'color': '#395a75'
                        }
                    }, {
                        'featureType': 'land',
                        'elementType': 'all',
                        'stylers': {
                            'color': '#285069'
                        }
                    }, {
                        'featureType': 'railway',
                        'elementType': 'all',

                    }, {
                        'featureType': 'highway',
                        'elementType': 'all',

                    }, {
                        'featureType': 'highway',
                        'elementType': 'labels',

                    }, {
                        'featureType': 'arterial',
                        'elementType': 'geometry',

                    }, {
                        'featureType': 'arterial',
                        'elementType': 'geometry.fill',
                        'stylers': {
                            'color': '#fefefe'
                        }
                    }, {
                        'featureType': 'poi',
                        'elementType': 'all',

                    }, {
                        'featureType': 'green',
                        'elementType': 'all',

                    }, {
                        'featureType': 'subway',
                        'elementType': 'all',

                    }, {
                        'featureType': 'manmade',
                        'elementType': 'all',

                    }, {
                        'featureType': 'local',
                        'elementType': 'all',

                    }, {
                        'featureType': 'arterial',
                        'elementType': 'labels',

                    }, {
                        'featureType': 'boundary',
                        'elementType': 'all',

                    }, {
                        'featureType': 'building',
                        'elementType': 'all',

                    }, {
                        'featureType': 'label',
                        'elementType': 'labels.text.fill',

                    }]
            }

设置飞线样式

let  geo = {
                "map": "bmap",
                "polyline": true,
                "progressiveThreshold": 100,
                "progressive": 400,
                "label": {
                    "emphasis": {
                        "show": false
                    }
                },
                "roam": true,
                "itemStyle": {
                    "normal": {
                        "areaColor": "#E7A060",   //连接线的颜色
                        "borderColor": "#ff9900"   //移动飞线的颜色
                    },
                    "emphasis": {
                        "areaColor": "#F300FF" //
                    }
                }
            }

设置飞线数据

let deviceList = [{
    deviceCount: 1,
    lat: 30.6799428454,
    lng: 104.067923463,
    province: "四川省",
    provinceId: "22",
},
{
    deviceCount: 1,
    lat: 26.6299067414,
    lng: 106.709177096,
    province: "贵州省",
    provinceId: "23",
},
{
    deviceCount: 18,
    lat: 22.8064929356,
    lng: 108.297233556,
    province: "广西壮族自治区",
    provinceId: "25",
}
]

let pointData = []

let lineData = []


  for (var i = 0; i < deviceList.length; i++) {
    let device = deviceList[i];
    if(!device.lng|| !device.lat){
       continue;
    }
    let toName = device.province?device.province:"";
   lineData.push({ "fromName":"总部","toName":toName,"coords":[ [device.lng,device.lat],[116.3,39.9]]});
   pointData.push({"name":toName,"value":[device.lng,device.lat,device.deviceCount]});
}

加载飞线图

 var myChart = echarts.init(document.getElementById('main'));
var option = {
                    //百度地图样式
                    bmap: {
                        center: [104.114129, 37.550339],
                        zoom: 4,
                        roam: true,
                        mapStyle: mapStyle
                    },
                    tooltip : {
                        trigger: 'item',
                        "formatter": function(res){
                            if(res.seriesType==="effectScatter"){
                                return res.name+" "+res.value[2]+' 台';
                            }

                        }
                    },

                    dataRange: {
                        show:false,
                        min : 0,
                        max : 100,
                        calculable : true,
                        color: ['#ff3333', 'orange', 'yellow','lime','aqua'],
                        textStyle:{
                            color:'#fff'
                        }
                    },
                    // 地图飞线样式选项
                    geo: geo,
                    series: [
                        {
                            //飞线样式
                            "name": "",
                            "type": "lines",
                            "coordinateSystem": "bmap",


                            // "zlevel": 2,
                            "symbol": ['none', 'arrow'],
                            // "symbolSize": 20,
                            "effect": {
                                symbolSize: 5,
                                "show": true,
                                "scaleSize": 2,
                                "period": 20,
                                "color": '#FFF',
                                "shadowBlur": 10,
                                constantSpeed: 50
                                // "show": true,
                                // "period": 6,
                                // "trailLength": 0,
                                // // "symbol": "path://M128 724.224c0 42.432 19.2 80.192 48 103.744l0 84.864C176 941.12 195.2 960 224 960l48 0C300.8 960 320 941.12 320 912.832l0-47.168 384 0 0 47.168C704 941.12 723.2 960 752 960l48 0c28.8 0 48-18.88 48-47.168l0-84.864C876.8 804.352 896 766.656 896 724.224L896 252.608C896 87.552 723.2 64 512 64 300.8 64 128 87.552 128 252.608L128 724.224zM296 771.392c-38.4 0-72-33.024-72-70.72 0-37.696 33.6-70.72 72-70.72 38.4 0 72 33.024 72 70.72C368 738.368 334.4 771.392 296 771.392zM728 771.392c-38.4 0-72-33.024-72-70.72 0-37.696 33.6-70.72 72-70.72s72 33.024 72 70.72C800 738.368 766.4 771.392 728 771.392zM800 488.448l-576 0L224 252.608l576 0L800 488.448z",
                                // "symbolSize": 8  //动画图大小
                            },
                            "lineStyle": {
                                "normal": {
                                    "color": new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                        offset: 0,
                                        color: '#58B3CC'
                                    }, {
                                        offset: 1,
                                        color: '#ffbf31'
                                    }], false),
                                    "width": 2,  //飞线粗细
                                    "opacity": 0.3,
                                    "curveness": 0.3
                                },
                                // normal:{
                                //     borderColor:'rgba(100,149,237,1)',
                                //     borderWidth:0.5,
                                //     areaStyle:{
                                //         color: '#1b1b1b'
                                //     }
                                // }
                            },
                            // "itemStyle": {
                            //     "normal": {
                            //         "borderWidth":1,
                            //         "lineStyle": {
                            //             "type": 'solid',
                            //             "shadowBlur": 10
                            //         }
                            //     }
                            // },
                            "data":lineData,
                        },
                        {
                            //终点点位样式
                            "name": "",
                            "type": "effectScatter",
                            "coordinateSystem": "bmap",

                            // "zlevel": 2,

                            "rippleEffect": {
                                period: 5,
                                scale: 3,
                                "brushType": "stroke"
                            },

                            // symbol:'emptyCircle',
                            symbolSize : 10,


                            // effect : {
                            //     show: true,
                            //     shadowBlur : 0
                            // },

                            itemStyle:{
                                normal:{
                                    "color": "#FF4040"
                                },
                            },

                            "label": {
                                "normal": {
                                    "show": false,
                                    "position": "right",
                                    "formatter": function(res){
                                        if(res.seriesType==="effectScatter"){
                                            return '';
                                        }
                                    }
                                }
                            },
                            // "itemStyle": {
                            //     // "normal": {
                            //     //     "color": "#ff00ff",
                            //     // }
                            //     "normal":{
                            //         "label":{ "show" :true},
                            //         symbolSize: 1000,
                            //         "color": "#FF4040"
                            //     },
                            //     "emphasis": {
                            //         "label":{ "position":'top'}
                            //     }
                            // },
                            //出发点和终点坐标
                            "data": pointData,
                        }
                    ]
                };




        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: echarts3d地图飞线效果指的是通过使用echarts3d插件来实现地图上的飞线动画效果。echarts3d是一款基于JavaScript的可视化图表库,能够帮助用户轻松创建各种动态、交互性的图表。 要实现地图飞线效果,首先需要引入echarts3d插件,并加载相关的地图数据。然后,在echarts3d提供的配置中,设置多个起点和终点坐标,根据坐标信息绘制出对应的连线。 接下来,可以通过设置图表的样式和动画效果来实现飞线的效果。可以设置连线的颜色、粗细,以及起点和终点的标记形状和颜色等。为了实现动画效果,可以设置连线的透明度、延迟和持续时间等属性,使连线在地图上呈现出移动的效果。 此外,可以通过设置图表的交互功能,使用户可以通过鼠标移动和缩放来浏览地图,并与飞线进行交互。通过添加鼠标事件和回调函数,可以实现鼠标悬停时的高亮效果,点击时的弹出信息窗口等交互操作。 总之,echarts3d地图飞线效果通过使用echarts3d插件,绘制地图和连线,并通过配置样式和动画效果,以及添加交互功能来实现。这种飞线效果可以使地图更加生动和有趣,帮助用户更好地理解和分析地理数据。 ### 回答2: Echarts3D地图飞线效果是Echarts库中的一种可视化效果,可以展示地理关系的动态连接。该效果利用地理坐标,将各个地点通过曲线飞线的方式连接起来,形成动态的数据流动效果。 要实现Echarts3D地图飞线效果,首先需要准备好数据,包括地点的经纬度和数据的数值。然后在Echarts图表中添加地理坐标系,配置好相关参数,并引入Echarts3D插件。 通过设置地图的初始视角、地点的标记和数值,以及曲线的配置,可以使得地图上的数据点按照指定的路径飞线连接。你可以设置曲线的颜色、粗细、动画效果等参数,以使得飞线效果更加醒目动态。 此外,你还可以通过配置相关参数,使得飞线的路径和数值能够适应不同的数据需求,例如配置线条的颜色渐变、设置曲线的弯曲度、更改飞线的速度等等。这些配置参数都可以根据你的实际需求进行调整。 总之,Echarts3D地图飞线效果提供了一种直观而动态的数据展示方式,帮助我们更好地理解地理关系和数据之间的联系。通过合理配置参数和数据,我们可以创造出各种各样的地图飞线效果,将数据可视化呈现,提升数据分析和展示的效果。 ### 回答3: ECharts 是一款基于JavaScript的可视化库,提供了丰富的图表类型以及交互功能。其中 ECharts 3D 地图飞线效果是该库的一个独特的功能,可以用于展示地理数据之间的关联关系。 ECharts 3D 地图飞线效果主要包括两个部分:折线地图和飞线动画。首先,我们可以使用 ECharts 的地图类型(如 scatter3D 或 lines3D)来绘制一个折线地图,将地理数据可视化展现出来。通过设置相应的经纬度坐标以及其他数据属性,可以在地图上绘制出各个地点的标记点。 接下来,通过配置飞线动画的特效参数,可以实现地理数据之间的飞线效果。通过定义起点和终点的经纬度坐标,以及飞线的属性(如颜色、宽度、透明度等),ECharts 可以自动生成一条飞线路径,并在地图上进行动画展示。 在飞线动画中,可以通过设置飞行时间、延迟等参数来控制效果的展示和流畅度。此外,可以通过配置文本标签等样式属性,将飞线上的数据信息以文字形式展示出来,增强了地理数据之间的可视化效果和交互性。 综上所述,ECharts 3D 地图飞线效果通过折线地图和飞线动画的结合,能够直观地展示地理数据之间的关联关系。用户可以通过设置经纬度、属性参数以及动画特效等自定义地理数据的可视化呈现方式,从而实现丰富多样的数据展示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天也想MK代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值