BaoXs
2022-05-14 ef260dff5d38c36272a2ac97d40db70ab3f8c2cc
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
//键盘漫游
// function controlStart(){
//     CesiumControl.create(this.viewer);
//     CesiumControl.init();
// }
 
// function controlEnd(){
//     CesiumControl.endControl();
// }
 
//图层控制
 
var layerModel = {
    layers: [{
        'type': 'baseMap',
        'index':0,
        'lists': [],
        'upLayer': null,
        'downLayer': null,
        'selectLayer': null
    }, {
        'type': 'terrain',
        'index':1,
        'lists': [],
        'upLayer': null,
        'downLayer': null,
        'selectLayer': null
    }, {
        'type': 'model',
        'index':2,
        'lists': [],
        'upLayer': null,
        'downLayer': null,
        'selectLayer': null
    }, {
        'type': 'project',
        'index':3,
        'lists': [],
        'upLayer': null,
        'downLayer': null,
        'selectLayer': null
    }],
    isSelectableLayer: function (typeIndex, layer) {
        return this.layers[typeIndex].lists.indexOf(layer) >= 0;
        // return this.baseLayers.indexOf(layer) >= 0;
    },
    raise: function (typeIndex, layer, index) {
        // imageryLayers.raise(layer);//basemap的rise
        layerModel.layers[typeIndex].upLayer = layer;
        layerModel.layers[typeIndex].downLayer = layerModel.layers[typeIndex].lists[Math.max(0, index - 1)];
 
        // updateLayerList();
        window.setTimeout(function () {
            layerModel.layers[typeIndex].upLayer = layerModel.layers[typeIndex].downLayer = null;
        }, 10);
    },
    lower: function (typeIndex,layer, index) {
        // imageryLayers.lower(layer);
        layerModel.layers[typeIndex].upLayer =
        layerModel.layers[typeIndex].layers[
            Math.min(layerModel.layers[typeIndex].lists.length - 1, index + 1)
            ];
        layerModel.layers[typeIndex].downLayer = layer;
        // updateLayerList();
        window.setTimeout(function () {
            layerModel.layers[typeIndex].upLayer = layerModel.layers[typeIndex].downLayer = null;
        }, 10);
    },
    canRaise: function (typeIndex,layerIndex) {
        return layerIndex > 0;
    },
    canLower: function (typeIndex,layerIndex) {
        return layerIndex >= 0 && layerIndex < layerModel.layers[typeIndex].lists.length - 1;
    },
    hasType:function(type){
        for(let i in layerModel.layers){
            let layer = layerModel.layers[i];
            if(layer.type == type){
                return layer.index;
            }
        }
        return -1;
    },
    createLayer: function(type){
        if(layerModel.hasType(type)==-1){
            var layer = {
                'type': type,
                'index':layerModel.layers.length,
                'lists': [],
                'upLayer': null,
                'downLayer': null,
                'selectLayer': null       
            };
            layerModel.layers.push(layer);
            return true;
        }
        return false;
    },
    find:function(node,indexes){
        if(indexes.length>1){
            return layerModel.find(node.list[indexes[0]],indexes.slice(1));
        }else{
            return  node.list[indexes[0]];
        }
    },
    changeListStatus:function(node){
        if(node.list!=null&&node.list!=undefined){
            for(let i in node){
                this.changeListStatus(node[i].list);
            }
        }else{
            node.model.show = !node.model.show;
        }
    },
    changeStatus:function(indexes){
        let listindex = indexes[0];
        if(listindex>2){
            let node = layerModel.lists[listindex];
 
        }
    }
    
};