В ArcToolbox есть несколько приятных функций, которые мы можем использовать, но по некоторым причинам это НЕ работает должным образом. Это даже не дает мне ошибки.
Мое программное обеспечение работает внутри ArcMap, поэтому нет необходимости снова AoInitialize, не так ли?
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");
}
Это пример кода у меня здесь. Я сгенерировал сборку инструментов DataManagement, но не смог найти файл для его подписи.
Этот код просто дает мне ошибку. это из-за подписания?
Я пробовал и другой путь, используя IVariantArray и вызывая имя инструмента, но безуспешно. Это только я или ...?
Кто-нибудь может указать мне «более хорошее» решение? Мне нужно запустить несколько процессов, уже встроенных в ArcToolbox, которые я действительно не хочу дублировать.