Есть ли способ скрыть слой от LayerSwitcher (OpenLayers), но все равно увидеть соответствующий GeoExt.LegendPanel?
У меня есть легенда из моих слоев карты. Это добавляет цветовую легенду для каждого слоя, добавляемого динамически.
Моя проблема: когда я прошу слой скрыться в переключателе слоев (я не хочу его там видеть), он больше не показывает мне легенду, даже если слой виден.
Есть ли способ, которым я могу держать его вне layerSwitcher, пока показываю мою легенду? Я хочу обойти проблему, которую библиотека вызывает у меня. Если бы был способ скрыть слой от LayerSwitcher в OpenLayers БЕЗ использования DisplayInLayerSwitcher: false, это решило бы мою проблему!!!
Это код моей легенды:
//------ Legend Window ---------------------------------------------------------------------------
/* --> LegendPanel (This GeoExt Panel automatically displays the legend image of the layer if the layer has been added to the map.
* If this paticular layer has been removed from the map, his legend image will also automatically be removed from the GeoExt Panel.)
*/
function createLegendPanel(){
return new Ext.Window({
id: 'legend_panel_extjs',
header: true,
title: '<center>' + extjs_gui_east_panel_title + '</center>',
shadow: false,
closable:false,
collapsible: true,
animCollapse: false,
cls: 'WindowPanelCls',
resizable: false,
//resizeHandles: 'w',
draggable: false,
width:(legendMaxWidth+17),
height:(legendMaxHeight+15),
plain: true,
listeners: {
show: windowPosition,
collapse: windowPosition
},
items: [
new GeoExt.LegendPanel({
id:'extjs_gui_legend_panel_list',
map: map,
region:'west',
layout: 'table',
filter: function(record){
if( !(record.getLayer().isBaseLayer) && !(record.getLayer() instanceof OpenLayers.Layer.Vector) ){
return true;
}
},
defaults: {
showTitle: false,
baseParams: {
format: 'image/png',
lang: lang
}
,style: '{border-style: ridge;}'
}
})
]
});
}
Спасибо всем.
PS: с веб-сайта GeoExt: LegendPanel будет включать в себя легенды для всех слоев в layerStore, с которым он настроен, если только слой не настроен с displayInLayerSwitcher: false или запись слоя имеет поле hideInLegend со значением true. Дополнительную фильтрацию можно выполнить, настроив фильтр на LegendPanel.