百度地图MapVGL的面图层渐变特效

百度地图MapVGL的面图层渐变特效

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>MapVGL</title>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <style>
    html,
    body {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
    }
    #map_container {
        width: 100%;
        height: 100%;
        margin: 0;
    }
    </style>
    <script src="//api.map.baidu.com/api?v=1.0&type=webgl&ak=1XjLLEhZhQNUzd93EjU5nOGQ"></script>
    <script src="//mapv.baidu.com/build/mapv.min.js"></script>
    <script src="static/common.js"></script>
    <script src="https://code.bdstatic.com/npm/mapvgl@1.0.0-beta.106/dist/mapvgl.min.js"></script>
</head>
<body>
    <div id="map_container"></div>
    <script>
    /* global BMapGL */

    /* global mapv */

    /* global mapvgl */

    /* global initMap */

    var map = initMap({
        tilt: 80,
        heading: -45.3,
        center: [106.540547,29.564858],
        zoom: 17
    });

    var view = new mapvgl.View({
        map: map
    });

    fetch('./static/chongqing.json').then(function (rs) {
        return rs.json();
    }).then(function (rs) {
        var data = rs;
        var polygons = [];
        var len = data.length;
        for (var i = 0; i < len; i++) {
            var line = data[i];
            var polygon = [];
            var pt = [line[1] * 512, line[2] * 512];
            for (var j = 3; j < line.length; j += 2) {
                pt[0] += line[j] / 100 / 2;
                pt[1] += line[j + 1] / 100 / 2;
                polygon.push([pt[0], pt[1]]);
            }

            polygons.push({
                geometry: {
                    type: 'Polygon',
                    coordinates: [polygon]
                },
                properties: {
                    height: line[0] / 2
                }
            });
        }

        var shaperLayer = new mapvgl.ShapeLayer({
            color: 'rgb(0, 255, 255)', // 面颜色
            style: 'gradual',
            opacity: 1.0 // 透明度
        });

        view.addLayer(shaperLayer);
        shaperLayer.setData(polygons);

    });
    </script>
</body>
</html>