Оглавление со слоем надписи в ArcGIS JavaScript

Я использую ArcGIS JavaScript 3.7 API, и я использую элемент управления agsjs.dijit.TOC, и он работает нормально, но когда я добавил слой метки на свою карту, тогда слой метки работает нормально, но оглавление не работает должным образом.

При нажатии флажка для включения-выключения слоя он работает нормально, но в отношении векторного слоя я добавил один слой надписи, который не включается-выключен.

Может ли кто-нибудь сказать мне, как отключить или включить слой этикеток.

Заранее спасибо.

Я вставляю код ..

        Var load = function () {
    require(["dojo/_base/Color", "esri/symbols/TextSymbol", "esri/renderers/SimpleRenderer", "esri/renderers/ScaleDependentRenderer"],
    function (Color, TextSymbol, SimpleRenderer, ScaleDependentRenderer) {
    var statesColor = new Color("#666");
    var fieldLabel = new TextSymbol().setColor(statesColor);
    fieldLabel.font.setSize("4pt");
    fieldLabel.font.setFamily("arial");

    statesLabelRenderer = new SimpleRenderer(fieldLabel);
    return statesLabelRenderer;
});
    }
    var layers = [];  
    var layer = new esri.layers.FeatureLayer(url, {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
        outFields: ["*"]                                    
    });
    layers.push(layer);

    layerInfo.push({ layer: layer, title: item["LookupDisplayDesc"], boxLabel: item["LookupDisplayDesc"], id: layer.id, checked: layer.visibleAtMapScale, slider: true });

if (item["LookupLongDesc"] != null && item["LookupLongDesc"] != "") {
    var fieldNames = item["LookupLongDesc"].split(",");
    var labelFields = "";
for (var i = 0 ; i < fieldNames.length ; i++) {
    labelFields = labelFields + "${" + fieldNames[i].trim() + "},";
}
    labelFields = labelFields.slice(0, -1).trim();
    load();
    var labelLayer = new esri.layers.LabelLayer();
    labelLayer.addFeatureLayer(layer, statesLabelRenderer, labelFields);
    layers.push(labelLayer);
    }
}
map.addLayers(layers);


 dojo.connect(map, 'onLayersAddResult', function (results) {
                if (layerInfo.length > 0) {
                    var legendDijit = new esri.dijit.Legend({
                        map: map,
                        layerInfos: layerInfo
                    }, "legendDiv");
                    legendDijit.startup();
                }
                toc = new agsjs.dijit.TOC({
                    map: map,
                    layerInfos: layerInfo
                }, 'LayerDiv');
                toc.startup();                
            });

person Rahul Gupta    schedule 10.10.2013    source источник
comment
Ребят жду ответа ...   -  person Rahul Gupta    schedule 11.10.2013


Ответы (1)


Не зная, как работает оглавление, я создаю логику слоев вручную. Если вы выберете ручной маршрут, вы можете просто использовать показать и скрыть, как показано ниже, или использовать setVisibleLayers, например это.

Простое отображение и скрытие в логике вашего слоя будет:

labelLayer.hide();
labelLayer.show();
person Xaxum    schedule 24.10.2013