Как сделать чтобы новый слой не отражался в легенде?

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Как сделать чтобы новый слой не отражался в легенде?

Сообщение Tereha » 31 дек 2014, 12:33

Уважаемые Гуру!
wpf API for WPF.
В xaml или в коде я добавляю новые слои для задач поиска , идентификации или выборки.
Они появляются в объекте Legend, связанным с объектом Map. Как сделать, чтобы этого не происходило?
Чтобы используемый в технологических целях слой - не появлялся ни на карте, ни в легенде?
P.S. Вот допустим как создается один из слоев в конструкторе в code behind:

Код: Выделить всё

            FeatureLayer fLayer = new FeatureLayer();
            fLayer.Url = "http://localhost:6080/ArcGIS/rest/services/streetRK/MapServer/1";
            fLayer.ID = "routes_new";

            //featureLayer1.Initialized += new EventHandler<EventArgs>(featureLayer1_Initialized);
            myMap.Layers.Add(fLayer);

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Как сделать чтобы новый слой не отражался в легенде?

Сообщение novia » 31 дек 2014, 16:27

Используйте Legend.layerIDs для того, чтобы указать в массиве слои, которые должны быть в легенде.
понравилось? жми палец вверх :!:

Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как сделать чтобы новый слой не отражался в легенде?

Сообщение Tereha » 01 янв 2015, 10:56

Спасибо. Я , как временное решение , просто удалял их по имени. Но остался второй вопрос - слой появляется на карте - а желательно , чтобы его там не было. Т.к. все слои изначально уже есть в BaseLayer, а некоторые повторно использую как featureLayer для решения задач:

Код: Выделить всё

 <esri:Map x:Name="myMap" >
            <esri:ArcGISDynamicMapServiceLayer ID="BaseLayer" 
                            Url="http://localhost:6080/ArcGIS/rest/services/streetRK/MapServer" />
                <esri:FeatureLayer    ID="routes_osm" 
                            Url="http://localhost:6080/ArcGIS/rest/services/streetRK/MapServer/1" >
                </esri:FeatureLayer>
            </esri:Map>
Здесь слой создан в xaml, но это старый вариант. Сейчас создаю их в коде, но проблема от этого не меняется.
P.S. Хотя простой вариант при создании слоя сделать слой.Visible = false. но хотелось бы быть уверенным, что он не отрисовывается.

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Как сделать чтобы новый слой не отражался в легенде?

Сообщение novia » 03 янв 2015, 22:11

если вам нужно взаимодействовать со слоем на карте, при этом его не видеть, то opacity или alpha в помощь.
при visible = false слой не будет запрашивать объекты с сервера.

если на карте взаимодействовать не нужно, стоит подумать о том, чтобы функции приложения реализовать без добавления +1 слоя на карту.

если будут подробности по задаче, можем вместе подумать что делать
понравилось? жми палец вверх :!:

Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как сделать чтобы новый слой не отражался в легенде?

Сообщение Tereha » 04 янв 2015, 08:51

Спасибо, конечно было бы интересно. Пока переключился на подключение osm слоя. Это займет некоторое время.

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость