arcgisEngine+c#+.NET

0 голосов
спросил 02 Март, 11 от aviabunin (440 баллов) в категории Программные продукты Esri
Можно ли получить доступ к документу карты или или как можно получить selectedLayer?
Спасибо!

3 Ответы

0 голосов
ответил 03 Март, 11 от Dido_kz1 (11,020 баллов)
привет, как понять документу карты ?
для работы с выбранными объектами используй pMap.SelectFeature
а для работы с выбранным слоем pDoc.SelectedLayer и т.д.
0 голосов
ответил 03 Март, 11 от aviabunin (440 баллов)
Рабочий вариант
        private void OnActiveViewEventsSelectionChanged()
        {
            ICompositeLayer layer1;
            IFeatureLayer layer;
            layer1 = axMapControl1.get_Layer(2) as ESRI.ArcGIS.Carto.ICompositeLayer;
            layer = layer1.get_Layer(0) as ESRI.ArcGIS.Carto.IFeatureLayer;

            IBasicMap map = null;
            ILayer layer2 = null;
            layer.Selectable = true;
            Object other = null;
            Object index = null;

            esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone;
            axTOCControl1.GetSelectedItem(ref item, ref map, ref layer2, ref other, ref index);
            IGeoFeatureLayer player;
            player    = layer2 as IGeoFeatureLayer;
            player.Selectable = true;
            ESRI.ArcGIS.Geodatabase.IFeatureClass pFc;// = player as ESRI.ArcGIS.Geodatabase.IFeatureClass;
            string strOIDName;
            pFc = player.FeatureClass;
            if(pFc!=null)
               strOIDName = pFc.OIDFieldName;
           ESRI.ArcGIS.Carto.IFeatureSelection pFSel;
           pFSel = player as ESRI.ArcGIS.Carto.IFeatureSelection;
           ESRI.ArcGIS.Geodatabase.ISelectionSet pSelSet;
           pSelSet = pFSel.SelectionSet;

           ESRI.ArcGIS.Geodatabase.ICursor pFCur;
           pSelSet.Search(null, false, out pFCur);

           int nlay = pFCur.FindField("Centr_lesn");
           string centr = pFCur.NextRow().get_Value(nlay).ToString();
           this.label2.Text = centr;
           IFeatureSelection featureSelection = layer2 as IFeatureSelection;
           ESRI.ArcGIS.Geodatabase.ISelectionSet selectionSet = featureSelection.SelectionSet;
        }
0 голосов
ответил 03 Март, 11 от aviabunin (440 баллов)
Исходная задача была такая.
Я привязывал таблицу из своей базы данных mySQL по X,Y. Требовалось по клику на символе вывести атрибуты. Никак не мог понять как это в принципе делается. Сейчас - по TOC определяю выбранный слой ну и далее по тексту
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...