Example #1
0
        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);
        }
Example #2
0
        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();
 }
Example #5
0
        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();
 }
Example #8
0
        private IGPUtilities m_GPUtilities; // GPUtilities object

        public ThiessenFunction()
        {
            m_GPUtilities = new GPUtilitiesClass();
        }
 public ProcessMultiNetTimeZonesFunction()
 {
     // Create the GPUtilities Object
     m_gpUtils = new GPUtilitiesClass();
 }
Example #10
0
        private string m_ToolName = "VoronoiFromLines"; //Function Name

        #endregion Fields

        #region Constructors

        public VoronoiFromLinesFunction()
        {
            m_GPUtilities = new GPUtilitiesClass();
        }