Il existe de belles fonctionnalités dans ArcToolbox que nous pouvons utiliser, mais pour une raison quelconque, cela ne fonctionne PAS correctement. Cela ne me lance même pas d'erreur.
Mon logiciel s'exécute dans ArcMap, donc pas besoin de AoInitialize à nouveau, corret?
public void Execute()
{
InitializeProduct();
try
{
Geoprocessor gp = new Geoprocessor();
gp.OverwriteOutput = true;
FeatureToPoint featureToPoint = new FeatureToPoint();
string outputPathName = CurrentWorkspace.PathName + "\\teste_centroide";
featureToPoint.in_features = InputFeatureClass;
featureToPoint.out_feature_class = outputPathName;
featureToPoint.point_location = "INSIDE";
IGeoProcessorResult result = (IGeoProcessorResult)gp.Execute(featureToPoint, null);
if (result == null)
{
for (int i = 0; i <= gp.MessageCount - 1; i++)
{
Console.WriteLine(gp.GetMessage(i));
}
}
IGPUtilities gpUtils = new GPUtilitiesClass();
this.OutputFeatureClass = gpUtils.OpenFeatureClassFromString(outputPathName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "\r\n");
}
Ceci est un exemple de code que j'ai ici. J'ai généré l'assembly d'outils DataManagement, mais je n'ai pas pu trouver le fichier pour le signer.
Ce code me donne juste une erreur. est-ce à cause de la signature?
J'ai également essayé dans l'autre sens, en utilisant IVariantArray et en appelant depuis le nom de l'outil, sans succès. Est-ce juste moi ou ...?
Quelqu'un peut-il me désigner une solution «plus agréable»? J'ai besoin d'exécuter plusieurs processus déjà construits dans ArcToolbox que je ne veux vraiment pas dupliquer.