예제 #1
0
 private string RasterToPolygon(object rasterlayer)
 {
     ESRI.ArcGIS.Geoprocessor.Geoprocessor       gp = new ESRI.ArcGIS.Geoprocessor.Geoprocessor();
     ESRI.ArcGIS.ConversionTools.RasterToPolygon rasterToPolygon = new ESRI.ArcGIS.ConversionTools.RasterToPolygon();
     rasterToPolygon.in_raster            = rasterlayer;
     rasterToPolygon.out_polygon_features = AppSingleton.Instance().WorkspacePath + "\\RasterToPolygon";
     rasterToPolygon.simplify             = "SIMPLIFY";
     rasterToPolygon.raster_field         = "Value";
     gp.AddOutputsToMap = AppSingleton.Instance().AralariEkle;
     gp.AddOutputsToMap = AppSingleton.Instance().AralariEkle;
     gp.OverwriteOutput = true;
     gp.Execute(rasterToPolygon, null);
     return(rasterToPolygon.out_polygon_features.ToString());
 }
예제 #2
0
        public bool Raster2Polygon(string inRaster, string outShp, bool simplify, out string msg)
        {
            msg = string.Empty;
            bool result = true;
            IGeoProcessorResult geoProcessorResult = null;

            try
            {
                ESRI.ArcGIS.ConversionTools.RasterToPolygon pR2P = new ESRI.ArcGIS.ConversionTools.RasterToPolygon();
                pR2P.in_raster            = inRaster;
                pR2P.out_polygon_features = outShp;
                if (simplify)
                {
                    pR2P.simplify = "SIMPLIFY";
                }
                else
                {
                    pR2P.simplify = "NO_SIMPLIFY";
                }
                geoProcessorResult = m_gp.Execute(pR2P, null) as IGeoProcessorResult;
                msg += GetGPMessages(m_gp);
                if (geoProcessorResult.Status != esriJobStatus.esriJobSucceeded)
                {
                    result = false;
                }
                return(result);
            }
            catch (Exception ex)
            {
                throw new Exception("栅格转矢量失败:\r\n" + ex.Message);
            }
            finally
            {
                if (geoProcessorResult != null)
                {
                    Marshal.ReleaseComObject(geoProcessorResult);
                }
            }
        }
예제 #3
0
파일: GisUtil.cs 프로젝트: Leooonard/CGXM
 public static void RasterToFeature(string rasterPath, string featurePath)
 {
     string tempPath = System.IO.Path.Combine(App.TEMP_PATH, "temp_int");
     if (Directory.Exists(tempPath))
     {
         Ut.DeleteDirectory(tempPath);
     }
     GisUtil.Int(rasterPath, tempPath);
     Geoprocessor gp = new Geoprocessor();
     ESRI.ArcGIS.ConversionTools.RasterToPolygon rasterToPolygon = new ESRI.ArcGIS.ConversionTools.RasterToPolygon();
     if (File.Exists(featurePath))
     {
         GisUtil.DeleteShpFile(featurePath);
     }
     rasterToPolygon.in_raster = tempPath;
     rasterToPolygon.out_polygon_features = featurePath;
     rasterToPolygon.raster_field = "VALUE";
     gp.Execute(rasterToPolygon, null);
     if (Directory.Exists(tempPath))
     {
         Ut.DeleteDirectory(tempPath);
     }
 }