Программное создание легенды C#

0 голосов
спросил 16 Июнь, 12 от Assolka (280 баллов) в категории Программные продукты Esri
    Здравствуйте, форумчане! Ниже приведен код ,с помощью которого создается картографический отчет, но проблема в том, что я хочу добавить только 4 слоя на легенду, однако добавляются все слои на легенду. Скажите ,пожалуйста, как можно добавить только определенные слои?Заранее спасибо!Это код, с помощью которого я пробовала добавить только три слоя на легенду, функция FixLegend приведена ниже.
for (int s = 0; s <= (ddDoc.FocusMap.LayerCount - 1); s++)
               {
                    if ((ddDoc.FocusMap.get_Layer(s).Name == "Особо охраняемые природные территории") && (ddDoc.FocusMap.get_Layer(s) is ICompositeLayer))
                    {
                        OOPT = (ICompositeLayer)ddDoc.FocusMap.get_Layer(s);
                        break;
                    }
               }
               if (OOPT != null)
               {

                    for (int i = 0; i <= (OOPT.Count - 1); i++)
                    {
                        if (OOPT.get_Layer(i) is IFeatureLayer)
                        {
                            if (OOPT.get_Layer(i).Name == "Особо охраняемые природные территории (полигональный)")
                            {
                                pCloseLayer = OOPT.get_Layer(i) as IGeoFeatureLayer;
                                pRenderer = ((IGeoFeatureLayer)pCloseLayer).Renderer;
                                kjj = FixLegend(pCloseLayer, pActiveV.Extent, ref pLegend);
                                g = g + kjj;
                                kjj = 0;


                            }
                            if (OOPT.get_Layer(i).Name == "Проектируемые природные парки")
                            {
                                pCloseLayer1 = OOPT.get_Layer(i) as IGeoFeatureLayer;
                                pRenderer = ((IGeoFeatureLayer)pCloseLayer1).Renderer;
                                kjj = FixLegend(pCloseLayer1, pActiveV.Extent, ref pLegend);
                                g = g + kjj;
                                kjj = 0;

                            }
                            if (OOPT.get_Layer(i).Name == "Особо охраняемые природные территории (точечный)")
                            {
                                pCloseLayer2 = OOPT.get_Layer(i) as IGeoFeatureLayer;
                                pRenderer = ((IGeoFeatureLayer)pCloseLayer2).Renderer;
                                kjj = FixLegend(pCloseLayer2, pActiveV.Extent, ref pLegend);
                                g = g + kjj;
                                kjj = 0;

                            }


                        }
      &nb

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...