260Echarts - 3D 路径图(Flights)

简介: 260Echarts - 3D 路径图(Flights)
效果图

源代码
$.getJSON('./data-gl/asset/data/flights.json', function (data) {
    var airports = data.airports.map(function (item) {
        return {
            coord: [item[3], item[4]]
        }
    });
    function getAirportCoord(idx) {
        return [data.airports[idx][3], data.airports[idx][4]];
    }
    // Route: [airlineIndex, sourceAirportIndex, destinationAirportIndex]
    var routesGroupByAirline = {};
    data.routes.forEach(function (route) {
        var airline = data.airlines[route[0]];
        var airlineName = airline[0];
        if (!routesGroupByAirline[airlineName]) {
            routesGroupByAirline[airlineName] = [];
        }
        routesGroupByAirline[airlineName].push(route);
    });
    var pointsData = [];
    data.routes.forEach(function (airline) {
        pointsData.push(getAirportCoord(airline[1]));
        pointsData.push(getAirportCoord(airline[2]));
    });
    var series = data.airlines.map(function (airline) {
        var airlineName = airline[0];
        var routes = routesGroupByAirline[airlineName];
        if (!routes) {
            return null;
        }
        return {
            type: 'lines3D',
            name: airlineName,
            effect: {
                show: true,
                trailWidth: 2,
                trailLength: 0.15,
                trailOpacity: 1,
                trailColor: 'rgb(30, 30, 60)'
            },
            lineStyle: {
                width: 1,
                color: 'rgb(50, 50, 150)',
                // color: 'rgb(118, 233, 241)',
                opacity: 0.1
            },
            blendMode: 'lighter',
            data: routes.map(function (item) {
                return [airports[item[1]].coord, airports[item[2]].coord];
            })
        };
    }).filter(function (series) {
        return !!series;
    });
    series.push({
        type: 'scatter3D',
        coordinateSystem: 'globe',
        blendMode: 'lighter',
        symbolSize: 2,
        itemStyle: {
            color: 'rgb(50, 50, 150)',
            opacity: 0.2
        },
        data: pointsData
    });
    myChart.setOption({
        legend: {
            selectedMode: 'single',
            left: 'left',
            data: Object.keys(routesGroupByAirline),
            orient: 'vertical',
            textStyle: {
                color: '#fff'
            }
        },
        globe: {
            environment: 'data-gl/asset/starfield.jpg',
            heightTexture: 'data-gl/asset/bathymetry_bw_composite_4k.jpg',
            displacementScale: 0.1,
            displacementQuality: 'high',
            baseColor: '#000',
            shading: 'realistic',
            realisticMaterial: {
                roughness: 0.2,
                metalness: 0
            },
            postEffect: {
                enable: true,
                depthOfField: {
                    enable: false,
                    focalDistance: 150
                }
            },
            temporalSuperSampling: {
                enable: true
            },
            light: {
                ambient: {
                    intensity: 0
                },
                main: {
                    intensity: 0.1,
                    shadow: false
                },
                ambientCubemap: {
                    texture: 'data-gl/asset/lake.hdr',
                    exposure: 1,
                    diffuseIntensity: 0.5,
                    specularIntensity: 2
                }
            },
            viewControl: {
                autoRotate: false
            },
            silent: true
        },
        series: series
    });
    window.addEventListener('keydown', function () {
        series.forEach(function (series, idx) {
            myChart.dispatchAction({
                type: 'lines3DToggleEffect',
                seriesIndex: idx
            });
        })
    });
});


目录
相关文章
|
6天前
|
JSON 程序员 定位技术
使用echarts+echarts-gl绘制3d地图,实现地图轮播效果
记录一下大屏开发中使用到的echarts-gl 大屏的页面根据需求前前后后改了几个版本了,地图的样式也改了又改 这里记录一下,因为echarts属性用到的比较多也比较杂,防止以后需要用到忘记了
|
6月前
echarts中矢量图片路径设置
echarts中矢量图片路径设置
|
7月前
262Echarts - 3D 路径图(Flights on Geo3D)
262Echarts - 3D 路径图(Flights on Geo3D)
27 0
|
7月前
261Echarts - 3D 路径图(Flights GL)
261Echarts - 3D 路径图(Flights GL)
25 0
|
7月前
253Echarts - 3D 曲面(皮革材质)
253Echarts - 3D 曲面(皮革材质)
15 0
|
7月前
252Echarts - 3D 曲面(Golden Rose)
252Echarts - 3D 曲面(Golden Rose)
44 0
|
7月前
250Echarts - 3D 曲面(Sphere Parametric Surface)
250Echarts - 3D 曲面(Sphere Parametric Surface)
14 0
|
7月前
248Echarts - 3D 曲面(Parametric Surface Rose)
248Echarts - 3D 曲面(Parametric Surface Rose)
30 0
|
7月前
240Echarts - 3D 柱状图(Transparent Bar3D)
240Echarts - 3D 柱状图(Transparent Bar3D)
21 0
|
7月前
239Echarts - 3D 柱状图(Stacked Bar3D)
239Echarts - 3D 柱状图(Stacked Bar3D)
59 0