Ejemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            path = textBox1.Text;
            Geoprocessor gp = new Geoprocessor();

            gp.OverwriteOutput = true;
            ESRI.ArcGIS.AnalysisTools.Erase erase = new ESRI.ArcGIS.AnalysisTools.Erase(featureLayer1, featureLayer2, path);
            try
            {
                gp.Execute(erase, null);
                MessageBox.Show("擦除成功");
            }
            catch
            {
                MessageBox.Show("擦除失败!");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 3.执行擦除
        /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            string            erasePath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(bufferSavefile), pDLTBFeatureLayer.Name + "_Erase.shp");
            IFeatureWorkspace pFWks     = null;

            if (System.IO.File.Exists(erasePath))
            {
                pFWks = GISUtil.GISUtil.CreateFeatureWorkspace(erasePath);
                IDataset pDs = (IDataset)pFWks.OpenFeatureClass(System.IO.Path.GetFileNameWithoutExtension(erasePath));
                pDs.Delete();
            }
            ESRI.ArcGIS.AnalysisTools.Erase erase = new ESRI.ArcGIS.AnalysisTools.Erase(shapefileDLTB, bufferSavefile, erasePath);
            try
            {
                SimplifyDLTB();
                ESRI.ArcGIS.Geoprocessor.Geoprocessor gp = new ESRI.ArcGIS.Geoprocessor.Geoprocessor();
                IGeoProcessorResult result = (IGeoProcessorResult)gp.Execute(erase, null);
            }
            catch (Exception ex)
            {
                LogHelper.LogHelper.WriteLog(typeof(BufferForm), ex.Message + ex.StackTrace);
                throw new Exception("执行擦除有误! 具体原因是:" + ex.Message + ex.StackTrace);
            }
            finally
            {
            }
            if (pFWks == null)
            {
                pFWks = GISUtil.GISUtil.CreateFeatureWorkspace(erasePath);
            }
            IFeatureClass pEraseFc    = pFWks.OpenFeatureClass(System.IO.Path.GetFileNameWithoutExtension(erasePath));
            IFeatureLayer pEraseLayer = new FeatureLayerClass();

            pEraseLayer.Name         = pEraseFc.AliasName;
            pEraseLayer.FeatureClass = pEraseFc;
            m_MapControl.Map.AddLayer(pEraseLayer);
            m_MapControl.ActiveView.Extent = m_MapControl.ActiveView.FullExtent;
            m_MapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
        }
Ejemplo n.º 3
0
        void IErase.EraseByLayerFileInsideSde(object in_feature, string in_layer_file_path, object erase_feature, string erase_layer_file_path, string out_feature)
        {
            //using (ComReleaser releaser = new ComReleaser())
            //{
                try
                {
                    Geoprocessor gp = new Geoprocessor();
                    IDataManager _dataManager = new DataManager(this._environment);
                    ESRI.ArcGIS.AnalysisTools.Erase clipTool = new ESRI.ArcGIS.AnalysisTools.Erase();
                    //releaser.ManageLifetime(gp);
                    //releaser.ManageLifetime(clipTool);
                    //IVariantArray param = new VarArrayClass();

                    string inlayer = string.Format("{0}.lyr", in_layer_file_path);
                    string cliplayer = string.Format("{0}.lyr", erase_layer_file_path);
                    //MessageBox.Show(string.Format("line 105 GExtractTool in={0}, erase={1}", inlayer, cliplayer));
                    _dataManager.SaveToLayerFile((ILayer)in_feature, inlayer);
                    _dataManager.SaveToLayerFile((ILayer)erase_feature, cliplayer);

                    //MessageBox.Show("line 112 GExtractTool, "+((IFeatureLayer)in_feature).FeatureClass.AliasName+", "+this._environment,this._workspace.PathName);
                    gp.SetEnvironmentValue("workspace", this._environment);
                    clipTool.in_features = inlayer;
                    clipTool.erase_features = cliplayer; //@"D:\duong.shp";// cliplayer;
                    clipTool.out_feature_class = out_feature;// string.Format("{0}{1}", "C:\\tn\\temp\\tempmdb.mdb\\", out_feature);//"C:\\tayninh\\temp\\tempmdb.mdb\\" + out_feature;

                    runTool(gp, clipTool, null);
                }
                catch (Exception err) { MessageBox.Show("loi erase: " + err.ToString()); }
            //}
        }