private IFeatureClass RunProcessGetFeatureClass(IGPProcess inProcess, ITrackCancel inCancel, string ignoreMessage) { IFeatureClass fc = null; IQueryFilter qf = null; IGeoProcessorResult result = null; IGPUtilities util = null; try { string toolbox = inProcess.ToolboxName; mLog.Debug("inside run process"); mLog.Debug("the process I want to run is " + inProcess.ToolName); mLog.Debug("the tool box is " + toolbox); myProcessor.OverwriteOutput = true; result = (IGeoProcessorResult)myProcessor.Execute(inProcess, null); ReturnMessages(myProcessor); //if result is null then there are no viable areas if (result != null) { util = new GPUtilitiesClass(); util.DecodeFeatureLayer(result.GetOutput(0), out fc, out qf); ReturnMessages(myProcessor, ignoreMessage); } } catch (Exception ex) { eLog.Debug(ex); ReturnMessages(myProcessor); } return(fc); }
public IGPMessages Validate(IArray paramValues, bool updateValues, IGPEnvironmentManager envMgr) { if (m_util == null) // delay constructor activities.... they segfault arcmap { m_util = new GPUtilitiesClass(); m_outp_schema = new AoTable( AoField.Integer("left_fid"), AoField.Integer("right_fid") ); } IGPMessages ms = m_util.InternalValidate(ParameterInfo, paramValues, updateValues, true, envMgr); bool passed = AoGPParameter.ValidateAll(m_parms, paramValues, ms); IGPMessage m = (IGPMessage)ms; if (!passed || m.IsError()) { ms.AddError(2, "An error here."); return(ms); } // TODO: Set up the output schema. IGPParameter outparam = paramValues.get_Element(3) as IGPParameter; IGPFeatureLayer fl = outparam.Value as IGPFeatureLayer; if (fl == null) { fl = new GPFeatureLayerClass(); } fl.DEFeatureClass = new DEFeatureClassClass(); (fl.DEFeatureClass as IDETable).Fields = m_outp_schema.Fields; // Set up its catalog path / name.. // IDataElement de = (fc as IDataElement; // if ( (old_val == null || old_val.DEFeatureClass == null) && src_path != null && src_path.DEFeatureClass != null) { // //src_path = m_util.UnpackGPValue(src_path) as IGPFeatureLayer; // IDataElement srcde = src_path.DEFeatureClass as IDataElement; // lazy cut-n-paste shortcut // de.CatalogPath = srcde.GetPath() + "\\" + srcde.GetBaseName() + "_bndgen." + srcde.GetExtension();// old_val.CatalogPath; // de.Children = srcde.Children; // de.ChildrenExpanded = srcde.ChildrenExpanded; // de.MetadataRetrieved = srcde.MetadataRetrieved; // //de.Name = old_val.Name + "bndgen"; // de.Type = srcde.Type; // } m_util.PackGPValue(fl as IGPValue, outparam); return(ms); }
private void BuildSpatialIndex(IGPValue gpFeatureClass, Geoprocessor.Geoprocessor geoProcessor, IGPUtilities gpUtil, ITrackCancel trackCancel, IGPMessages message) { if ((gpFeatureClass == null) || (geoProcessor == null) || (gpUtil == null)) return; // Check if the feature class supports spatial index grids IFeatureClass fc = gpUtil.OpenDataset(gpFeatureClass) as IFeatureClass; if (fc == null) return; int idxShapeField = fc.FindField(fc.ShapeFieldName); if (idxShapeField >= 0) { IField shapeField = fc.Fields.get_Field(idxShapeField); if (shapeField.GeometryDef.GridCount > 0) { if (shapeField.GeometryDef.get_GridSize(0) == -2.0) return; } } // Create the new spatial index grid bool storedOriginal = geoProcessor.AddOutputsToMap; try { geoProcessor.AddOutputsToMap = false; DataManagementTools.CalculateDefaultGridIndex calculateDefaultGridIndex = new DataManagementTools.CalculateDefaultGridIndex(gpFeatureClass); IGeoProcessorResult2 gpResults2 = geoProcessor.Execute(calculateDefaultGridIndex, trackCancel) as IGeoProcessorResult2; message.AddMessages(gpResults2.GetResultMessages()); if (gpResults2 != null) { DataManagementTools.RemoveSpatialIndex removeSpatialIndex = new DataManagementTools.RemoveSpatialIndex(gpFeatureClass.GetAsText()); removeSpatialIndex.out_feature_class = gpFeatureClass.GetAsText(); gpResults2 = geoProcessor.Execute(removeSpatialIndex, trackCancel) as IGeoProcessorResult2; message.AddMessages(gpResults2.GetResultMessages()); DataManagementTools.AddSpatialIndex addSpatialIndex = new DataManagementTools.AddSpatialIndex(gpFeatureClass.GetAsText()); addSpatialIndex.out_feature_class = gpFeatureClass.GetAsText(); addSpatialIndex.spatial_grid_1 = calculateDefaultGridIndex.grid_index1; addSpatialIndex.spatial_grid_2 = calculateDefaultGridIndex.grid_index2; addSpatialIndex.spatial_grid_3 = calculateDefaultGridIndex.grid_index3; gpResults2 = geoProcessor.Execute(addSpatialIndex, trackCancel) as IGeoProcessorResult2; message.AddMessages(gpResults2.GetResultMessages()); } } catch (Exception ex) { message.AddWarning(ex.Message); } finally { geoProcessor.AddOutputsToMap = storedOriginal; } }
public ProcessNavStreetsTimeZonesFunction() { // Create the GPUtilities Object m_gpUtils = new GPUtilitiesClass(); }
private IGPUtilities m_GPUtilities; // GPUtilities object public VoronoiFromLinesFunction() { m_GPUtilities = new GPUtilitiesClass(); }
private IGPUtilities m_GPUtilities; // GPUtilities object public CalculateAreaFunction() { m_GPUtilities = new GPUtilitiesClass(); }
private IGPUtilities m_GPUtilities; // GPUtilities object public CalculateAreaFunction() { m_GPUtilities = new GPUtilitiesClass(); }
private IGPUtilities m_GPUtilities; // GPUtilities object public ThiessenFunction() { m_GPUtilities = new GPUtilitiesClass(); }
public ProcessMultiNetTimeZonesFunction() { // Create the GPUtilities Object m_gpUtils = new GPUtilitiesClass(); }
private string m_ToolName = "VoronoiFromLines"; //Function Name #endregion Fields #region Constructors public VoronoiFromLinesFunction() { m_GPUtilities = new GPUtilitiesClass(); }