请各位大神帮忙看下:
许可设置
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//绑定RUNTIME
if (!ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine))
{
if (!ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop))
{
MessageBox.Show("不能绑定Arcgis Runtime,应用程序即将关闭");
return;
}
}
//初始化Advanced许可,还有Standard,Engine,Basic等
esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
IAoInitialize m_Aolnitialize = new AoInitializeClass();
licenseStatus = m_Aolnitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
//licenseStatus = m_Aolnitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
//检查扩展模块功能
licenseStatus = m_Aolnitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
}
执行GP
private void AtbBuffer()
{
//IFeatureLayer pVorLineLayer=null;
Geoprocessor gp = new Geoprocessor();//初始化Geoprocessor
gp.OverwriteOutput = true; //允许运算结果覆盖现有文件
ESRI.ArcGIS.AnalysisTools.Buffer pBuffer = new ESRI.ArcGIS.AnalysisTools.Buffer();
pBuffer.in_features = "C:\\Users\\Administrator\\Documents\\ArcGIS\\a\\watershed.shp";
//pBuffer.in_features = "C:\\Users\\Administrator\\Desktop\\手头工作\\诸暨达标方案资料\\数据\\水系.shp"; //输入对象,既可是IFeatureLayer对象,也可是完整文件路径如“D:\\data.shp”
pBuffer.out_feature_class = "C:\\Users\\Administrator\\Desktop\\TRY\\A1.shp"; //输出对象,一般是包含输出文件名的完整文件路径,如“D:\\buffer.shp”
//设置缓冲区的大小,即可是带单位的具体数值,如0.1 Decimal Degrees;也可是输入图层中的某个字段,如“BufferLeng”
pBuffer.buffer_distance_or_field = 30;
//执行缓冲区分析
gp.Execute(pBuffer, null);
}
PS:网上说是权限问题,建议设置许可为licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);但小弟这里并没有.esriLicenseProductCodeArcInfo,有engine basic standard advanced,版本是10.1
小弟是AE开发初学者,纠结此问题已经很久,请各位大神指点一下!