Добавление слоев к карте через C#

0 голосов
спросил 10 Сен, 12 от Aleksey_FL (460 баллов) в категории Программные продукты Esri
Доброе время суток! Подскажите пожалуйста!

У меня на странице имеется 2 GRID окна, в 1-м отображаются слои карты. Мне нужно сделать так, чтобы во втором окне, используя C# отображалось содержимое первого! Как это можно сделать! Уже много вариантов перепробовал! Вот последний (здесь я, используя ID, добавляю 1 слой из трех во второй грид):

private void button1_Click(object sender, RoutedEventArgs e)
        {
            Map mp_sl = new Map();
                     
            grid1.Children.Add(mp_sl);

            Layer firstLayer = map1.Layers["ferst"];
            mp_sl.Layers.Add(firstLayer);
   
           
        }

Плиз, подскажите в чем ошибка
image
    

2 Ответы

0 голосов
ответил 18 Сен, 12 от Dido_kz1 (11,020 баллов)
если я вас правильно понял, то примерно так можно
 ArcGISTiledMapServiceLayer myArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer();
                    myArcGISTiledMapServiceLayer.InitializationFailed += Layer_InitializationFailed;
                    myArcGISTiledMapServiceLayer.ID = "tiled";
                    myArcGISTiledMapServiceLayer.Url = tiled_layer;
                    MyMap.Layers.Add(myArcGISTiledMapServiceLayer);

0 голосов
ответил 24 Сен, 12 от Aleksey_FL (460 баллов)
Спасибо за совет, но это немного не то!
Вот как я решил проблему:


foreach (Layer eachLayer in map1.Layers)
            {

               try
               {
                    ArcGISDynamicMapServiceLayer dynamicLayer = eachLayer as ArcGISDynamicMapServiceLayer;
                    if (dynamicLayer != null)
                    {
                        ArcGISDynamicMapServiceLayer newDynamicLayer = new ArcGISDynamicMapServiceLayer();
                        newDynamicLayer.Url = dynamicLayer.Url;
                        newDynamicLayer.Opacity = dynamicLayer.Opacity;
                        dynamicLayer.VisibleLayers = dynamicLayer.VisibleLayers;
                        mp_pr.Layers.Add(newDynamicLayer);
                    }
                    ArcGISTiledMapServiceLayer tiledLayer = eachLayer as ArcGISTiledMapServiceLayer;
                    if (tiledLayer != null)
                    {
                        ArcGISTiledMapServiceLayer newTiledLayer = new ArcGISTiledMapServiceLayer();
                        newTiledLayer.Url = tiledLayer.Url;
                        newTiledLayer.Opacity = tiledLayer.Opacity;
                        mp_pr.Layers.Add(newTiledLayer);
                    }
                    GraphicsLayer graphicsLayer = eachLayer as GraphicsLayer;
                    if (graphicsLayer != null)
                    {
                        GraphicsLayer newGraphicsLayer = new GraphicsLayer();
                        newGraphicsLayer = graphicsLayer;
                        mp_pr.Layers.Add(newGraphicsLayer);
                    }
               }
               catch (Exception ex)
               {
                    MessageBox.Show("Ошибка создания шаблона для печати: " + ex.Message);
               }
            }
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...