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()); }
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); } } }
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); } }