2016-03-14 110 views
0

我有一個加載到ArcMap中的mxd文件。加載完成後,有幾層;其中一些具有多個要素類。最終結果是列出每個要素類的所有文件路徑/位置/來源,但現在我只需要知道如何列出所有要加載的要素類。當我說列表時,他們可以通過消息框輸出到屏幕上。我知道我需要遍歷每一層,但利用正確的界面和訪問ArcMaps屬性是我迷路的地方。列出MXD中的所有要素類

任何幫助,將不勝感激。我仍然在學習ArcObjects,以及它如何工作以及急需幫助。提前致謝。

+0

單個_layer_只有從提取數據單個要素類;一個_圖層組可能有多個圖層(和多個要素類)。我很抱歉,如果這看起來很挑剔,但術語是重要的:) – Erica

回答

0

這將是C#的示例遍歷所有層,如果它是一個功能層,得到直到在工作區從它那裏得到的路徑或任何:

/* Make a list of all feature classes. */ 
List<ILayer> layers_list = new List<ILayer>(); 
IMap map = get_map(); 
IEnumLayer enumLayer = map.get_Layers(null, true); 
ILayer layer = null; 
while (layer = enumLayer.Next() != null) { 
    // we're looking for a feature class only 
    if (layer is IFeatureLayer) { 
     try { 
      IFeatureClass fclass = ((IFeatureLayer)layer).FeatureClass; 
      IFeatureLayer featureLayer = (IFeatureLayer)layer; 
      // Get the dataset and workspace of the feature class 
      IDataset ds = (IDataset)fclass; 
      IWorkspace ws = (IWorkspace)ds.Workspace; 
      // Do something with the workspace, like getting the path or 
      // whatever... 
     } catch (Exception e) { 
      MessageBox.Show("Layer ' " + layer.Name + "': \n\n" + e.Message); 
     } 
    } 
} 
相關問題