C# AE axGlobeControl The 3D Analyst extension has not been enabled.
转载自:https://blog.csdn.net/gwbob/article/details/46873079
说明:请按照顺序检查有无问题
再次遇到这个问题,之前有解决,当时并没有记下来,导致本次处理的时候有点模糊不清。在此做个总结,以此铭记!
这个问题主要原因是权限的问题,因为在AE开发过程中,要取得相应的权限。ArcGIS Engine10版本开始产品架构发生了变化,将ArcGIS Desktop和Engine runtime安装在不同的目录下,所以要求Engine应用程序以及自定义组件等绑定到Desktop或者Engine。
解决方案有:
1、添加绑定代码
2、添加LicenseControl控件,右击属性,选择相应的产品,重启后生效。
3、网上盛传的解决办法
/// 先在窗体上添加LicenceControl控件 public void Enable3DAnalysis() { ESRI.ArcGIS.esriSystem.IExtensionManagerAdmin iExtensionManagerAdmin = new ESRI.ArcGIS.esriSystem.ExtensionManagerClass(); UID iUid3D = new UIDClass(); iUid3D.Value = "{94305472-592E-11D4-80EE-00C04FA0ADF8}"; object o = new object(); iExtensionManagerAdmin.AddExtension(iUid3D, ref o); IExtensionConfig iExtensionConfig = (IExtensionConfig)(iExtensionManagerAdmin as IExtensionManager).FindExtension(iUid3D); iExtensionConfig.State = esriExtensionState.esriESEnabled; }
补充:然后在报错页面的初始化后面调用该方法。
4、WPF遇到该错误的解决方法
WPF开发中,只能用代码在App.xaml.cs中初始化License。
public App() { <span style="font-family:Arial, Helvetica, sans-serif;"> ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);</span> <span style="font-family:Arial, Helvetica, sans-serif;"></span> AoInitialize aoi = new AoInitializeClass(); esriLicenseExtensionCode extensionCode = esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst; esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB; if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable && aoi.IsExtensionCodeAvailable(productCode, e xtensionCode) == esriLicenseStatus.esriLicenseAvailable) { aoi.Initialize(productCode); aoi.CheckOutExtension(extensionCode); } }