yycGIS

我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容。 我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系。

Less is more, more is different!

导航

ESRI.ArcGIS.AnalysisTools.Erase 结果是空?

用ESRI.ArcGIS.AnalysisTools.Erase擦除,结果总是空的。

这几天一直纠结一个问题,就是在AE下使用ESRI.ArcGIS.AnalysisTools中的工具(例如:泰森多边形的建立等)无法得到结果。例如使用以下代码:        

 

Geoprocessor gp = new Geoprocessor();             

gp.OverwriteOutput = true;

ESRI.ArcGIS.AnalysisTools.CreateThiessenPolygons CTP = new CreateThiessenPolygons(@"D:\AE\Data\school.shp","D:\AE\Data\CTP.shp");             

CTP.fields_to_copy = "ONLY_FID";          

gp.Execute(CTP, null);

 

开始一直得不到结果,然后上网查了很久后终于解决了。一般都会是由于工具未注册导致(the tool is not licensed)。

解决方案为:在主窗体的初始化函数中加入代码,如下:

public Mainform()         

{             

#region 初始化许可             

IAoInitialize m_AoInitialize = new AoInitializeClass();             

esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;                         

licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);             //默认第一个为有效地,之后无效,此级别最高,可用绝大多数功能

//licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);级别最低

#endregion

InitializeComponent();          

} 

 

关键代码一定要放正确,放到InitializeComponent()后会无效。

原因说明下:系统搭建时,axLicenseControl默认使用的是esriLicenseProductCodeEngine,这个的级别是最低的,导致ESRI.ArcGIS.AnalysisTools中的很多功能无法使用(而ESRI.ArcGIS.AnalysisTools得Buffer可用),所以要重新设置。

注意:在axLicenseControl上进行右键查属性设置无法使设置生效,故只能加代码。

注意:在axLicenseControl上进行右键查属性设置全去掉即可。

 

posted on 2013-10-16 21:50  yycGIS  阅读(1943)  评论(0编辑  收藏  举报