首页 > 其他 > 详细

GP调用arctoolbox 以Clip为例

时间:2014-10-09 22:18:02      阅读:480      评论:0      收藏:0      [点我收藏+]

GP的功能非常强大,也是GIS建模的一个很重要的工具。在Arcengine中,实现Clip功能很多种方法,可以用IBasicGeoprocessor的clip方法,但是GP无疑是最简单的。

public Clip( 
   objectin_cover,
   objectclip_cover,
   objectout_cover
)
输入这三个参数,即可实现clip功能,第一个参数为输入要素,第二个为裁剪要素,最后为保存路径


 string SavePath= @"F:\shiyan\最后的战役\ww2.shp";
      //保存路径    
  string file=   System.IO.Path.GetDirectoryName(SavePath);
        //获取保存目录
  string filename=System.IO.Path.GetFileName(SavePath);
         //获取保存文件名
  string name = System.IO.Path.GetFileNameWithoutExtension(SavePath); //获取不带后缀的文件名

  Geoprocessor g = new Geoprocessor();
            g.OverwriteOutput = true;
            //ESRI.ArcGIS.AnalysisTools.Clip clip = new Clip(@"F:\shiyan\最后的战役\New_Shapefile(3).shp", @"F:\shiyan\最后的战役\New_Shapefile(4).shp", @"F:\shiyan\最后的战役\ww1.shp");
            ESRI.ArcGIS.AnalysisTools.Clip clip = new Clip(featurelayer1, featurelayer2, SavePath); //两种方法皆可
           IGeoProcessorResult result=(IGeoProcessorResult) g.Execute(clip, null);
           if (result.Status == esriJobStatus.esriJobSucceeded)  //运行状态
           {
               MessageBox.Show("成功!");
           }

             // 将得到的结果添加到图层

            IWorkspaceFactory factory = new ShapefileWorkspaceFactoryClass();
            IWorkspace workspace=  factory.OpenFromFile(file,0);
            IFeatureWorkspace featureworkspace = workspace as IFeatureWorkspace;
            IFeatureClass featureclass=   featureworkspace.OpenFeatureClass(filename);
            IFeatureLayer layer = new FeatureLayerClass();
            layer.FeatureClass = featureclass;
            layer.Name = name;
            axMapControl1.AddLayer(layer);
        }

GP调用arctoolbox 以Clip为例

原文:http://www.cnblogs.com/GiserNet/p/4014499.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!