Включение\выключение слоёв

0 голосов
спросил 27 Авг, 07 от DigiMax (560 баллов) в категории Программные продукты Esri
Добрый день!!!
Каким образом можно управлять видимостью слоя в процессе работы приложения?
 
Есть вот такой код
private void PrepareLayers()
{

_serverContext = (ESRI.ArcGIS.Server.IServerContext)Session["serverContext"];

_mapServer = (ESRI.ArcGIS.Carto.IMapServer)_serverContext.ServerObject;

_mapServerObj = (ESRI.ArcGIS.Carto.IMapServerObjects)_serverContext.ServerObject;

featLayer = (ESRI.ArcGIS.Carto.IFeatureLayer)_serverContext.CreateObject("esriCarto.FeatureLayer");

featLayer = (ESRI.ArcGIS.Carto.IFeatureLayer)_mapServerObj.get_Layer(_mapServer.DefaultMapName, Constants.EmptyLayerNumber);

geoFeatLayer = (ESRI.ArcGIS.Carto.IGeoFeatureLayer)_serverContext.CreateObject("esriCarto.FeatureLayer");

geoFeatLayer = (ESRI.ArcGIS.Carto.IGeoFeatureLayer)featLayer;

foFeatLayer = (ESRI.ArcGIS.Carto.IFeatureLayer)_serverContext.CreateObject("esriCarto.FeatureLayer");

foFeatLayer = (ESRI.ArcGIS.Carto.IFeatureLayer)_mapServerObj.get_Layer(_mapServer.DefaultMapName, Constants.FOLayerNumber);

foGeoFeatLayer = (ESRI.ArcGIS.Carto.IGeoFeatureLayer)_serverContext.CreateObject("esriCarto.FeatureLayer");

foGeoFeatLayer = (ESRI.ArcGIS.Carto.IGeoFeatureLayer)foFeatLayer;

if (!IsPostBack)

{

foFeatLayer.Visible = false;

foGeoFeatLayer.Visible = false;

featLayer.Visible = true;

geoFeatLayer.Visible = true;

_mapServerObj.RefreshServerObjects();

RussiaMap.Refresh();

}

}

И ещё обработчик клика: protected void lbtnSetFO_Click(object sender, EventArgs e) { PrepareLayers(); featLayer.Visible = false; geoFeatLayer.Visible = false; foFeatLayer.Visible = true; foGeoFeatLayer.Visible = true; _mapServerObj.RefreshServerObjects(); RussiaMap.Refresh(); } То есть я управляю отображением слоёв с помощью св-ва Visible. Проблема в том что слой после клика по кнопке отображается только после IISReseta. Без него - никакой реакции - какой слой был включеен при загрузке, включённым и остаётся, зхотя после клика должен включиться другой. Как можно этого избежать? Заранее спасибо!!!!

1 Ответ

0 голосов
ответил 27 Авг, 07 от Alexander1 (32,520 баллов)
Check samples:

1. "Common Set Visible Layers in a Map and Toc"

http://edndoc.esri.com//arcobjects/9.2/NET_Server_Doc/developer/samples/Web_Applications/8aa4e95f-bb16-42d1-a6c3-fefc4b83e6b2.htm
    
2. "Stormwater Management" (...There is code for setting the visibility of layers...)

http://arcscripts.esri.com/details.asp?dbid=15149
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...