Сегодня я вам
расскажу, как правильно добавить слой
типа «FeatureLayer»
в карту, сделанную из ArcGIS
Viewer for Silverlight.
Казалось бы,
что может быть проще
var lyr = new ESRI.ArcGIS.Client.FeatureLayer() { Url = lyrUrl, ProxyUrl = proxy };
ESRI.ArcGIS.Client.Map map = MapApplication.Current.Map;
ESRI.ArcGIS.Client.LayerCollection lyrs = map.Layers;
lyr.InitializationFailed += new EventHandler(lyr_InitializationFailed);
lyrs.Add(lyr);
MapApplication.SetLayerName(lyr, lyrName);
И это работает
прекрасно для любых типов слоев, кроме
FeatureLayer. Нет-нет, FeatureLayer так тоже добавляется
и даже отображается. Проблемы возникают
потом, когда вы захотите поработать с
атрибутивной таблицей или заметите,
что на экран выводятся не все фичи
(обьекты) слоя.
Для того, чтобы
FeatureLayer работал корректно, его надо
предварительно инициализировать.
Приблизительно так
var lyr = new ESRI.ArcGIS.Client.FeatureLayer() { Url = lyrUrl, ProxyUrl = proxy };
lyr.OutFields.Add("*");
lyr.Mode = FeatureLayer.QueryMode.OnDemand;
lyr.Initialize();
и только потом
слой можно добавлять к карте.
Как ни странно,
ни в документации,
ни в примерах
кода про эдакие тонкости ничего не
сказано.
Комментариев нет:
Отправить комментарий