ansel0926
2022-05-18 f0efddd9e32b9c5dc828401c4092be004b4826cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
define([
    'VectorRenderer/VectorLayer',
    'VectorRenderer/VectorRenderer',
    'VectorRenderer/VectorStyle',
    'VectorTileImageryProvider/VectorTileImageryProvider',
    'Util/turf'
], function (
    VectorLayer,
    VectorRenderer,
    VectorStyle,
    VectorTileImageryProvider,
    turf
    ) {
 
    if (typeof window !== 'undefined' && !window.Cesium) {
        window.Cesium = {};
    } else if (typeof global !== 'undefined' && !global.Cesium) {
        global.Cesium = {};
    }
    Cesium.VectorRenderer = VectorRenderer;
    Cesium.VectorTileImageryProvider = VectorTileImageryProvider;
    Cesium.VectorLayer = VectorLayer;
    Cesium.VectorStyle = VectorStyle;
    Cesium.turf = turf;
 
    if (Cesium.ImageryLayerCollection) {
 
        /**
       * 根据zIndex属性调整图层顺序
       * @method orderByZIndex
       * @name orderByZIndex
       * @memberof Cesium.ImageryLayerCollection
       */
 
        Cesium.ImageryLayerCollection.prototype.orderByZIndex = function () {
            //调整带有index的图层顺序
            var layersHasIndex = [];
            for (var i = 0; i < this.length; i++) {
                var l = this.get(i);
                if ((l.imageryProvider.zIndex || l.zIndex)) {
                    layersHasIndex.push(l);
                    if (!l.zIndex) {
                        l.zIndex = l.imageryProvider.zIndex;
                    } else if (!l.imageryProvider.zIndex) {
                        l.imageryProvider.zIndex = l.zIndex;
                    }
                }
            }
            if (layersHasIndex && layersHasIndex.length) {
                layersHasIndex.sort(function (a, b) {
                    if (a.zIndex > b.zIndex) {
                        return 1;
                    } else if (a.zIndex < b.zIndex) {
                        return -1;
                    }
                    else {
                        return 0;
                    }
                })
            }
            var that = this;
            layersHasIndex.forEach(function (l) {
                that.raiseToTop(l);
            });
 
            for (var i = 0; i < this.length; i++) {
                var l = this.get(i);
                //调整矢量图层顺序
                if (!Cesium.defined(l.imageryProvider.zIndex)
                    && !Cesium.defined(l.zIndex)
                    && l.imageryProvider instanceof VectorTileImageryProvider) {
                    this.raiseToTop(l);
                }
            }
 
            for (var i = 0; i < this.length; i++) {
                var l = this.get(i);
                //调整矢量图层顺序
                if (!Cesium.defined(l.imageryProvider.zIndex)
                     && !Cesium.defined(l.zIndex)
                     && l.imageryProvider instanceof VectorTileImageryProvider
                    && (l.imageryProvider._lineOnly || l.imageryProvider._onlyPoint)) {
                    this.raiseToTop(l);
                }
            }
        }
 
    }
    return Cesium;
})