1
13693261870
2022-09-16 762f2fb45db004618ba099aa3c0bd89dba1eb843
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
/**
 * 功能描述:图例
 * 开发公司:广东蓝图
 * 开发人员:蔡工
 * 开发时间:2019-07-25 ~ 2019-09
 */
 
define([
    "dojo/_base/declare",
    "esri/dijit/Legend"
], function(declare, Legend) {
    var clazz, legend;
    clazz = declare("Legend", null, {
        constructor: function () {
        },
        show: function() {
            if (!legend) {
                legend = new Legend({
                    map: map,
                    layerInfos: []
                }, "legendDiv");
                legend.startup();
            }
            //legend.layerInfos = layerInfo;
            //如果连续勾选多个图层,遍历map下的layers,排除basemap
            legend.layerInfos = []; //先清空Legend图层
            var layersIds = map.layerIds;
            if (layersIds) {
                for (var i = 0; i < layersIds.length; i++) {
                    var layerId = layersIds[i];
                    if (layerId.indexOf("basemap") > -1 || layerId.indexOf("nolegend") > -1) {
                        continue;
                    }
                    var layer = map.getLayer(layerId);
                    if (layer._basemapGalleryLayerType != undefined) {
                        if (layer._basemapGalleryLayerType == "basemap") {
                            continue;
                        }
                    }
                    legend.layerInfos.push({
                        layer: layer,
                        title: " ",
                        id: ""
                    });
                }
            }
            var graphicsLayerIds = map.graphicsLayerIds;
            if (graphicsLayerIds) {
                for (var i = 0; i < graphicsLayerIds.length; i++) {
                    var layerId = graphicsLayerIds[i];
                    if (layerId.indexOf("basemap") > -1 || layerId.indexOf("nolegend") > -1) {
                        continue;
                    }
                    var layer = map.getLayer(layerId);
                    if (layer._basemapGalleryLayerType != undefined) {
                        if (layer._basemapGalleryLayerType == "basemap") {
                            continue;
                        }
                    }
                    if (layerId == "jjtjt_TC") {
                        legend.layerInfos.push({
                            layer: layer,
                            title: "涉海企业分布",
                            id: ""
                        });
                    }
                }
            }
            //刷新图例
            legend.refresh();
        }
    });
    clazz.getInstance = function() {
        if (instance === null) {
            instance = new clazz();
        }
        return instance;
    };
    return clazz;
});