Mais

Qual é a interface / propriedade em ArcObjects que corresponde à propriedade dataSource de uma camada em arcpy?

Qual é a interface / propriedade em ArcObjects que corresponde à propriedade dataSource de uma camada em arcpy?


Estou tentando obter o "Caminho do Catálogo" de uma fonte de dados da Camada de Característica na tabela de conteúdo do ArcMap usando ArcObjects. Isso é muito simples em Arcpy, mas aparentemente não tanto em ArcObjects.

Em arcpy, a propriedade Layer.dataSource retorna o "Caminho do catálogo" da camada. Por exemplo, para uma classe de recurso SDE em um conjunto de dados de recurso, ele retorna algo como:

Database Connections MyConnection.sde SDE.MyFeatureDataset SDE.MyFeatureClass

A ajuda diz que ofonte de dadospropriedade é apenas oworkspacePathedatasetNamepropriedades combinadas, mas isso não é exatamente verdade. Por um lado, oworkspacePathpropriedade expande o atalho "Conexões de banco de dados" e, em segundo lugar, não inclui o nome do conjunto de dados do recurso. Desse modoworkspacePathretorna algo como:

c: Documents and Settings user Application Data ESRI Desktop10.0 ArcCatalog MyConnection.sde

Aliás, este também é o valor retornado por IWorkspaceName.PathName.

Então, há uma propriedade ArcObjects que corresponde diretamente aoLayer.dataSourceou é necessária lógica adicional para construir o mesmo "Caminho do Catálogo" a partir das interfaces ArcObjects disponíveis?


O comentário de @ Kirk me aproximou o suficiente para descobrir. Obrigado!

  1. Envie a camada para IGPUtilities.MakeGPLayerFromLayer.
  2. Obtenha o DataElement do GPLayer
  3. Retorne o valor DataElement.CatalogPath

Assista o vídeo: How to Download and Install Arc GIS latest version free. Arc GIS Full versionFree Arc GIS