Engine中如何调用ESRI.ArcGIS.GeostatisticalAnalystTools.IDW 工具?如何获取返回的out_ga_layer图层?

1,我现在调用地类统计中的 IDW工具,生成地类统计图层,但在ArcEngine中不知道参数如何设置?
2,设置完成之后,我如何获取到这个图层对象,并添加到地图上?
已邀请:

朱新颖

赞同来自:

【解决办法】:
1,经测试,下面代码可以成功。但是有两点一定要注意,一是程序要绑定Desktop产品,初始化Desktop产品下的许可,例如Advanced(注意使用Desktop许可的话是无法使用任何控件的),初始化Engine许可无法成功;二是用代码检出esriLicenseExtensionCodeGeoStats许可,使用LicenseControl控件的话无法检出该扩展许可,只能使用代码检出。


RuntimeManager.Bind(ProductCode.Desktop); 
ESRI.ArcGIS.esriSystem.IAoInitialize ao = new ESRI.ArcGIS.esriSystem.AoInitialize(); ao.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeAdvanced);ao.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeGeoStats);
ESRI.ArcGIS.Geoprocessor.Geoprocessor gp = new ESRI.ArcGIS.Geoprocessor.Geoprocessor(); 
gp.OverwriteOutput = true; 
ESRI.ArcGIS.GeostatisticalAnalystTools.IDW IDW = new ESRI.ArcGIS.GeostatisticalAnalystTools.IDW(); 
IDW.in_features = @C:\Users\Administrator\Downloads\交通大区\AdminZone.shp; 
IDW.z_field = AREA; 
IDW.out_ga_layer = zxyTset; 
IDW.out_raster = @D:\ZhuXinying\测试数据\Raster.gdb\test3; 
IDW.power = 2; 
IDW.search_neighborhood = NBRTYPE=Standard S_MAJOR=2.89390101003182 S_MINOR=2.89390101003182 ANGLE=0 NBR_MAX=15 NBR_MIN=10 SECTOR_TYPE=ONE_SECTOR; 
GeoProcessorResult gpResult = new GeoProcessorResult(); 

try 

gp.Execute(IDW, null); 


catch (Exception ex) 

// Print geoprocessing execution error messages. 
for (int i = 0; i < gp.MessageCount; i++) 
Console.WriteLine(gp.GetMessage(i)); 

 

2,可以使用IGPUtilities.DecodeLayer方法来获取返回的out_ga_layer,参考代码:



IGPUtilities gpUtilities = new GPUtilitiesClass(); 
ILayer layer = gpUtilities.DecodeLayer(gpResult.GetOutput(0));

要回复问题请先登录注册