Engine中调用Intersect工具执行报错

1,Engine调用Intersect工具,操作两个要素类时可以成功,如果操作三个要素类时,为什么报错?
2,经过修改,本地FileGDB数据可以成功了,但是操作SDE数据时仍报错,要素类使用的是绝对路径。
已邀请:

朱新颖

赞同来自:

【解决办法】:
1,ArcMap中该工具的Tool Help中第一行关于许可级别,说明Basic和Standard级别的许可只能处理两个要素类相交,其它的比如操作三个要素类需要Advanced许可。如果本机装有Desktop并且具有Advanced许可可以调用该工具处理三个要素类,注意Bind为Desktop,使用IAoInitialize 初始化Advanced许可(不能使用Engine产品的MapControl等控件)。

2,.sde的绝对路径中有空格导致,将该.sde文件重命名一下(去掉空格)或者使用IWorkspaceFactory.Create()创建一个路径中不含空格的.sde连接文件即可。


RuntimeManager.Bind(ProductCode.Desktop); 
ESRI.ArcGIS.esriSystem.IAoInitialize ao = new ESRI.ArcGIS.esriSystem.AoInitialize(); 
ao.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeAdvanced); 
ESRI.ArcGIS.AnalysisTools.Intersect intersect = new ESRI.ArcGIS.AnalysisTools.Intersect(); 
intersect.in_features = @E:\ZhuXinying\testData\Data.gdb\Polytest;E:\ZhuXinying\testData\Data.gdb\StudyRegion_1;E:\ZhuXinying\testData\Data.gdb\StudyRegion; 
intersect.out_feature_class = @C:\Users\Xinying\Documents\ArcGIS\Default.gdb\intersectThree; 
ExecuteGP(intersect); 

要回复问题请先登录注册