有时候我们需要得到一个面的边界,这里我们可以用feature to line 工具,具体功能如下:
/// <summary>
/// 面转线
/// </summary>
/// <param name="inPolygonShp">输入shp数据(polygon)</param>
private string FeatureToLine(string inPolygonShp)
{
try
{
//调用GP工具
Geoprocessor toLineGeoprocessor = new Geoprocessor();
//初始化工作空间
toLineGeoprocessor.SetEnvironmentValue("workspace", @"C:\Users\TOMATO\Documents\ArcGIS\Default.gdb");
toLineGeoprocessor.OverwriteOutput = true;
string toLineName = "FtoLine.shp";//面转化为线的名称
string featureToLine = newFolder + "\\" + toLineName;//路径+名称
//判断此文件是否存在,若存在,删除
if (File.Exists(featureToLine))
{
File.Delete(featureToLine);
}
//初始化FeatureToLine工具
FeatureToLine newFeatureToLine = new FeatureToLine()
{
in_features = inPolygonShp,//要转化为线的shp文件(必须为polygon)
out_feature_class = featureToLine//输出路径
};
toLineGeoprocessor.Execute(newFeatureToLine, null);
//判断此文件是否存在
if (!File.Exists(featureToLine))
{
return null;
}
return featureToLine;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}
本文参考了http://blog.csdn.net/gisoracle/article/details/4300738,感谢博主!如出现对com组件的调用返回了错误的。。。值,可以参考http://llsshh1985.blog.163.com/blog/static/14006860320145174550560/(arcgisengine中调用GP报错的问题)