Suite

Comment contrôler quels champs sont exportés dans ArcObjects ? (via la cartographie des champs)


Dans ArcMap 10.x, si vous utilisez la commande Exporter les données sur une couche contenant des champs masqués/désactivés, ces champs ne seront pas présents dans la classe d'entités/table créée. Ma question est simple : comment dupliquer cette fonctionnalité en utilisant ArcObjects et C# ? LeIFfieldl'interface semble n'avoir aucune propriété ou méthode pour définir cet aspect des données de la table. Est-ce possible?

Je cherche à le faire pour pouvoir extraire un sous-ensemble de champs d'une table et le conserver pour une utilisation ultérieure (au lieu d'avoir à faire face à toutes les données inutiles présentes dans de nombreuses publications de données standardisées).

METTRE À JOUR: J'essaie actuellement d'utiliser leIFieldInfooption suggérée dans les commentaires ci-dessous, mais je me trouve incapable d'effectuer la conversion à partir d'unIFeatureClassà unIFeatureCalquequi semble nécessaire pour accéderITableChamps. Est-ce que j'ai raté quelque chose ? Je fais cela dans une application WinForms, il n'y a donc pas d'instance ArcMap parent ouverte pour obtenir des informations sur les couches. Je souhaite travailler uniquement avec des classes d'entités et des tables, si possible.

MISE À JOUR 2: Il semblerait que, parce que ce winforms est détaché de toute instance d'ArcMap, je ne peux pas utiliserIFeatureCalquepour activer et désactiver les champs avant l'exportation. Est-ce que quelqu'un sait comment créer correctement un objet de carte de champ en C# ?


Je n'ai pas écrit cela jusqu'au bout, mais je pense voir un chemin. Vous pouvez vérifier le IFieldInfo2.Visible. Une fois que vous avez déterminé quels champs sont visibles, vous pouvez effectuer l'exportation. Par exemple, vous pouvez créer un QueryFilter et définir sa propriété SubFields, puis utiliser IExportOperation en passant le QueryFilter.


Voir la vidéo: Comment importer les coordonnées géographiques de Google earth vers Excel (Octobre 2021).