日期:2014-06-10  浏览次数:20930 次

用wpf 在做叠加分析时 遇到了一个错误:“ERROR 010096:当前没有或未启用Spatial Analyst许可”;在环境中把这个Spatial Analyst扩展功能给勾了也不能解决,现在把我的解决办法写上以供参考:

解决办法是在app中初始化许可时加上一句话就行了 下面是 我在app.cs中的许可代码  放到app中的类中即可

 //为alicense设置许可

//当然这之中也要引用一些类库, 都是arcgis自带的
        protected override void OnStartup(StartupEventArgs e)
        {
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            initlicense();

//弹出窗体 ,app前台把startupUri 去掉 ,不然会弹出两个窗体
            new Arcmap().Show();
        }
        public void initlicense()
        {
            AoInitialize aoi = new AoInitialize();
            esriLicenseExtensionCode extensionCodes = esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst; //这是解决的办法
            esriLicenseExtensionCode extensionCode = esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst;
            esriLicenseProductCode pro = esriLicenseProductCode.esriLicenseProductCodeEngine;
            if (aoi.IsProductCodeAvailable(pro) == esriLicenseStatus.esriLicenseAvailable &&
                aoi.IsExtensionCodeAvailable(pro, extensionCode) == esriLicenseStatus.esriLicenseAvailable  &&
                aoi.IsExtensionCodeAvailable(pro, extensionCodes) == esriLicenseStatus.esriLicenseAvailable
                 )
            {
                aoi.Initialize(pro);
                aoi.CheckOutExtension(extensionCode);
                aoi.CheckOutExtension(extensionCodes);
            }
        }

 

esriLicenseExtensionCode中的属性有很多加载方式和以上类似