Última versión

master
Elena 2021-03-01 21:56:31 +01:00
parent 1abf90fe19
commit b4096ab81f
1 changed files with 68 additions and 47 deletions

View File

@ -21,7 +21,7 @@ using ArcGIS.Desktop.Framework.Threading.Tasks;
using ArcGIS.Core.Data; using ArcGIS.Core.Data;
using ArcGIS.Desktop.Core; using ArcGIS.Desktop.Core;
using ArcGIS.Desktop.Editing; using ArcGIS.Desktop.Editing;
using ArcGIS.Desktop.Internal.Layouts.Utilities;
namespace PruebaAddIn namespace PruebaAddIn
{ {
@ -59,54 +59,75 @@ namespace PruebaAddIn
return Geoprocessing.MakeValueArray(inlayers, outpath); return Geoprocessing.MakeValueArray(inlayers, outpath);
});*/ });*/
EditOperation op = new EditOperation();
using (Geodatabase fileGeodatabase = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri("D:\\Proyectos\\Olivia\\Datos\\gdbs\\Soria.gdb")))) using (Geodatabase fileGeodatabase = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri("D:\\Proyectos\\Olivia\\Datos\\gdbs\\Soria.gdb"))))
using (FeatureClass featureClass = fileGeodatabase.OpenDataset<FeatureClass>("prueba"))
{ {
//FeatureClassDefinition facilitySiteDefinition = featureClass.GetDefinition(); //management.CreateFeatureClass
//int facilityIdIndex = facilitySiteDefinition.FindField("TIPO_ENT"); FeatureClass featureClass_out= fileGeodatabase.
string whereClause = "NOM_TIPO_ENTIDAD = 'Aceras'"; using (FeatureClass featureClass = fileGeodatabase.OpenDataset<FeatureClass>("prueba"))
Selection sel = featureClass.Select(new QueryFilter { WhereClause = whereClause }, SelectionType.ObjectID, SelectionOption.Normal); {
FeatureClassDefinition facilitySiteDefinition = featureClass.GetDefinition();
featureClass_out.CopyFrom<FeatureClass, FeatureClass>(featureClass);
featureClass_out.DeleteRows(null);
//int facilityIdIndex = facilitySiteDefinition.FindField("TIPO_ENT");
string whereClause = "NOM_TIPO_ENTIDAD = 'Aceras'";
//Selection sel = featureClass.Select(new QueryFilter { WhereClause = whereClause }, SelectionType.ObjectID, SelectionOption.Normal);
//FeatureClass featSel = sel as FeatureClass;
//IReadOnlyList<long> selectedOIDs = sel.GetObjectIDs();
Row row;
Feature feat;
using (RowCursor rowCursor = featureClass.Search(new QueryFilter { WhereClause = whereClause }))
{
while (rowCursor.MoveNext())
{
using (row = rowCursor.Current)
{
feat = row as Feature;
featureClass_out
}
}
}
var progDlg = new ProgressDialog("Running Geoprocessing Tool", "Cancel", 100, true);
progDlg.Show();
var progSrc = new CancelableProgressorSource(progDlg);
// prepare input parameter values to CopyFeatures tool
string input_data = layerpath;
//string out_workspace = ArcGIS.Desktop.Core.Project.Current.DefaultGeodatabasePath;
string out_data = outpath;
// make a value array of strings to be passed to ExecuteToolAsync
var parameters = Geoprocessing.MakeValueArray(input_data, out_data);
// execute the tool
IGPResult gpResult = await Geoprocessing.ExecuteToolAsync("FeatureClassToShapefile_conversion", parameters,
null, new CancelableProgressorSource(progDlg).Progressor, GPExecuteToolFlags.Default);
// dialog hides itself once the execution is complete
//progDlg.Hide();
/*//input layers list should contain the path of each layer name, i.e. if the root node is "Mapping" and the layer name is "gs_points", path is "Mapping\\gs_points".
List<string> inlayers = new List<string>();
inlayers.Add(layerpath);
//outpath is just the folder to save the shapefiles in
var valueArray = Geoprocessing.MakeValueArray(inlayers, outpath);
// to let the GP tool run asynchronously without blocking the main thread
// use the GPThread option of GPExecuteToolFlasgs
//
GPExecuteToolFlags flags = GPExecuteToolFlags.GPThread; // instruct the tool run non-blocking GPThread
IGPResult gpResult = await Geoprocessing.ExecuteToolAsync("FeatureClassToShapefile_conversion", valueArray, null, null, null, flags);*/
string res = string.IsNullOrEmpty(gpResult.ReturnValue)
? $@"Error in gp tool: {gpResult.ErrorMessages}"
: $@"Ok: {gpResult.ReturnValue}";
return res;
}
} }
var progDlg = new ProgressDialog("Running Geoprocessing Tool", "Cancel", 100, true);
progDlg.Show();
var progSrc = new CancelableProgressorSource(progDlg);
// prepare input parameter values to CopyFeatures tool
string input_data = layerpath;
//string out_workspace = ArcGIS.Desktop.Core.Project.Current.DefaultGeodatabasePath;
string out_data = outpath;
// make a value array of strings to be passed to ExecuteToolAsync
var parameters = Geoprocessing.MakeValueArray(input_data, out_data);
// execute the tool
IGPResult gpResult = await Geoprocessing.ExecuteToolAsync("FeatureClassToShapefile_conversion", parameters,
null, new CancelableProgressorSource(progDlg).Progressor, GPExecuteToolFlags.Default);
// dialog hides itself once the execution is complete
//progDlg.Hide();
/*//input layers list should contain the path of each layer name, i.e. if the root node is "Mapping" and the layer name is "gs_points", path is "Mapping\\gs_points".
List<string> inlayers = new List<string>();
inlayers.Add(layerpath);
//outpath is just the folder to save the shapefiles in
var valueArray = Geoprocessing.MakeValueArray(inlayers, outpath);
// to let the GP tool run asynchronously without blocking the main thread
// use the GPThread option of GPExecuteToolFlasgs
//
GPExecuteToolFlags flags = GPExecuteToolFlags.GPThread; // instruct the tool run non-blocking GPThread
IGPResult gpResult = await Geoprocessing.ExecuteToolAsync("FeatureClassToShapefile_conversion", valueArray, null, null, null, flags);*/
string res = string.IsNullOrEmpty(gpResult.ReturnValue)
? $@"Error in gp tool: {gpResult.ErrorMessages}"
: $@"Ok: {gpResult.ReturnValue}";
return res;
}
} }
} }