Пример #1
0
        protected override void OnStart(string[] args)
        {
            bool isBound = ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);

            if (!isBound)
            {
                return;
            }

            IAoInitialize aoInitialize = new AoInitializeClass();

            aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            aoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeWorkflowManager);

            IJTXDatabaseManager databaseMan = new JTXDatabaseManagerClass();

            m_database = (IJTXDatabase2)databaseMan.GetActiveDatabase(false);

            //m_lastDate = (DateTime.Now;

            m_dataWorkspaceNames = m_database.GetDataWorkspaceNames(null);

            IJTXSpatialNotificationManager spatNotifMan = m_database.SpatialNotificationManager;

            m_regLayers = spatNotifMan.RegisteredLayerInfos;

            for (int i = 0; i < m_dataWorkspaceNames.Count; i++)
            {
                IWorkspace ws  = m_database.GetDataWorkspace(m_dataWorkspaceNames.get_Item(i).DatabaseID, "");
                DateTime   now = (DateTime)((IDatabaseConnectionInfo2)ws).ConnectionCurrentDateTime;
                m_workspaces.Add(new WorkspaceInfo(m_dataWorkspaceNames.get_Item(i).DatabaseID, ws, now));
            }

            m_timer.Enabled = true;
        }
        /// <summary>
        /// Check out spatial analyst license
        /// </summary>
        /// <returns>esriLicenseStatus</returns>
        public esriLicenseStatus GetSpatialAnalystLicense()
        {
            //Check out a Spatial Analyst license with the ArcView product.
            esriLicenseProductCode productCode =
                esriLicenseProductCode.esriLicenseProductCodeAdvanced;
            IAoInitialize     pAoInitialize = new AoInitializeClass();
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;

            //Check the productCode.
            licenseStatus = pAoInitialize.IsProductCodeAvailable(productCode);
            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                //Check the extensionCode.
                licenseStatus = pAoInitialize.IsExtensionCodeAvailable(productCode,
                                                                       esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
                if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    //Initialize the license.
                    licenseStatus = pAoInitialize.Initialize(productCode);
                    if ((licenseStatus == esriLicenseStatus.esriLicenseCheckedOut))
                    {
                        //Check out the Spatial Analyst extension.
                        licenseStatus = pAoInitialize.CheckOutExtension
                                            (esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst)
                        ;
                    }
                }
            }

            return(licenseStatus);
        }
 public imageAnalysisUtil()
 {
     gp.OverwriteOutput = true;
     IAoInitialize a = new AoInitializeClass();
     if (!a.IsExtensionCheckedOut(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst))
     {
         weCheckedOutSpa = true;
         a.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
     }
 }
Пример #4
0
        public imageAnalysisUtil()
        {
            gp.OverwriteOutput = true;
            IAoInitialize a = new AoInitializeClass();

            if (!a.IsExtensionCheckedOut(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst))
            {
                weCheckedOutSpa = true;
                a.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
            }
        }
Пример #5
0
 public void InitArcGISLicence()
 {
     ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
     AoInitialize aoi = new AoInitializeClass();
     esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeAdvanced;
     if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
     {
         aoi.Initialize(productCode);
     }
     aoi.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
 }
Пример #6
0
        /// <summary>
        /// 绑定lincense
        /// </summary>
        public void BindArcgisLicense()
        {
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            IAoInitialize     _iAoInitialize = new AoInitializeClass();
            esriLicenseStatus licenseStatus  = esriLicenseStatus.esriLicenseUnavailable;

            licenseStatus = _iAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            //licenseStatus = _iAoInitialize.(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
            licenseStatus = _iAoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability);
            licenseStatus = _iAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
        }
Пример #7
0
        /// <summary>
        /// This is used to return whether the function tool is licensed to execute.
        /// </summary>
        /// <remarks>Override to provide custom licensing check</remarks>
        /// <returns></returns>
        public virtual bool IsLicensed()
        {
            IAoInitialize     aoi    = new AoInitializeClass();
            esriLicenseStatus status = aoi.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeWorkflowManager);

            if (status == esriLicenseStatus.esriLicenseCheckedOut ||
                status == esriLicenseStatus.esriLicenseAlreadyInitialized ||
                status == esriLicenseStatus.esriLicenseAvailable)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
			private bool InitializeEngineLicense ()
			{
					AoInitialize aoi = new AoInitializeClass ();

					//more license choices could be included here
					esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngine;
          esriLicenseExtensionCode extensionCode = esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst;

          if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable  && aoi.IsExtensionCodeAvailable(productCode, extensionCode) == esriLicenseStatus.esriLicenseAvailable)
          {
              aoi.Initialize(productCode);
              aoi.CheckOutExtension(extensionCode);
              return true;
          }
          else
              return false;
			}
        private static void Ensure3dAnalyst()
        {
            IAoInitialize aoInitialize = new AoInitializeClass();

            bool is3dAvailable =
                aoInitialize.IsExtensionCheckedOut(
                    esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);

            if (!is3dAvailable)
            {
                esriLicenseStatus status =
                    aoInitialize.CheckOutExtension(
                        esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);

                _msg.DebugFormat("3D Analyst checkout status: {0}", status);
            }
        }
Пример #10
0
 //签出扩展许可
 private static bool CheckOutLicenseExtension(ref AoInitializeClass aoInit, esriLicenseExtensionCode code)
 {
     try
     {
         if (aoInit.CheckOutExtension(code) == esriLicenseStatus.esriLicenseCheckedOut)
         {
             aoInit.GetLicenseExtensionName(code);
             //TraceHandler.AddDebugMessage("check out successed :" + aoInit.GetLicenseExtensionName(code));
             return(true);
         }
         //TraceHandler.AddErrorMessage("!!!check out error :" + aoInit.GetLicenseExtensionName(code));
     }
     catch (Exception ex)
     {
         Console.WriteLine("初始化错误" + ex.ToString());
     }
     return(false);
 }
Пример #11
0
        private bool InitializeEngineLicense()
        {
            AoInitialize aoi = new AoInitializeClass();

            //more license choices could be included here
            esriLicenseProductCode   productCode   = esriLicenseProductCode.esriLicenseProductCodeEngine;
            esriLicenseExtensionCode extensionCode = esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst;

            if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable && aoi.IsExtensionCodeAvailable(productCode, extensionCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productCode);
                aoi.CheckOutExtension(extensionCode);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #12
0
        public static void AoInitialize()
        {
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            IAoInitialize pAoInitialize = new AoInitializeClass();

            if (pAoInitialize == null)
            {
                throw new Exception("AO Initialize failed");
            }

            esriLicenseStatus status = pAoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeAdvanced);

            if (status == esriLicenseStatus.esriLicenseAvailable)
            {
                pAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            }
            else if (status == esriLicenseStatus.esriLicenseUnavailable)
            {
                throw new Exception("esriLicenseProductCodeAdvanced is unavailable");
            }

            status = pAoInitialize.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeAdvanced, esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
            if (status == esriLicenseStatus.esriLicenseAvailable)
            {
                status = pAoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
                if (status == esriLicenseStatus.esriLicenseNotInitialized)
                {
                    throw new Exception("esriLicenseExtensionCodeSpatialAnalyst is not initialized");
                }
            }
            else if (status == esriLicenseStatus.esriLicenseNotLicensed)
            {
                throw new Exception("esriLicenseExtensionCodeSpatialAnalyst is not licensed");
            }
            else if (status == esriLicenseStatus.esriLicenseUnavailable)
            {
                throw new Exception("esriLicenseExtensionCodeSpatialAnalyst is  unavailable");
            }
        }
Пример #13
0
        private static bool checkLicense()
        {
            //ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

            IAoInitialize m_AoInitialize = new AoInitializeClass();

            esriLicenseStatus licenseStatus = (esriLicenseStatus)m_AoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine);

            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                licenseStatus = (esriLicenseStatus)m_AoInitialize.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine, esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);
                if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    licenseStatus = (esriLicenseStatus)m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);//esriLicenseProductCodeEngine);
                    if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        System.Windows.Forms.MessageBox.Show("The initialization failed. This application cannot run!");
                        return(false);
                    }
                    else
                    {
                        licenseStatus = (esriLicenseStatus)m_AoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeDesigner);
                        if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                        {
                            System.Windows.Forms.MessageBox.Show("Unable to check out the Designer extension. This application cannot run!");
                            return(false);
                        }
                    }
                }
                return(true);
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("The ArcGIS Engine product is unavailable. This application cannot run!");
                return(false);
            }
        }
Пример #14
0
        public void Execute(IArray paramvalues, ITrackCancel TrackCancel, IGPEnvironmentManager envMgr, IGPMessages message)
        {
            IAoInitialize     aoInitialize = new AoInitializeClass();
            esriLicenseStatus naStatus     = esriLicenseStatus.esriLicenseUnavailable;

            IGPUtilities2 gpUtil     = null;
            IDataset      osmDataset = null;

            try
            {
                if (!aoInitialize.IsExtensionCheckedOut(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork))
                {
                    naStatus = aoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork);
                }

                gpUtil = new GPUtilitiesClass();

                // OSM Dataset Param
                IGPParameter osmDatasetParam = paramvalues.get_Element(in_osmFeatureDataset) as IGPParameter;
                IDEDataset2  osmDEDataset    = gpUtil.UnpackGPValue(osmDatasetParam) as IDEDataset2;
                if (osmDEDataset == null)
                {
                    message.AddError(120048, string.Format(resourceManager.GetString("GPTools_NullPointerParameterType"), osmDatasetParam.Name));
                    return;
                }

                osmDataset = gpUtil.OpenDatasetFromLocation(((IDataElement)osmDEDataset).CatalogPath) as IDataset;

                // Network Config File Param
                IGPParameter osmNetConfigParam = paramvalues.get_Element(in_NetworkConfigurationFile) as IGPParameter;
                IGPValue     osmNetConfigFile  = gpUtil.UnpackGPValue(osmNetConfigParam) as IGPValue;
                if ((osmNetConfigFile == null) || (string.IsNullOrEmpty(osmNetConfigFile.GetAsText())))
                {
                    message.AddError(120048, string.Format(resourceManager.GetString("GPTools_NullPointerParameterType"), osmNetConfigParam.Name));
                    return;
                }

                // Target Network Dataset Param
                IGPParameter ndsParam = paramvalues.get_Element(out_NetworkDataset) as IGPParameter;
                IDataElement deNDS    = gpUtil.UnpackGPValue(ndsParam) as IDataElement;
                if (deNDS == null)
                {
                    message.AddError(120048, string.Format(resourceManager.GetString("GPTools_NullPointerParameterType"), ndsParam.Name));
                    return;
                }

                // Create Network Dataset
                using (NetworkDataset nd = new NetworkDataset(osmNetConfigFile.GetAsText(), osmDataset, deNDS.Name, message, TrackCancel))
                {
                    if (nd.CanCreateNetworkDataset())
                    {
                        nd.CreateNetworkDataset();
                    }
                }
            }
            catch (UserCancelException ex)
            {
                message.AddWarning(ex.Message);
            }
            catch (Exception ex)
            {
                message.AddError(120008, ex.Message);
#if DEBUG
                message.AddError(120008, ex.StackTrace);
#endif
            }
            finally
            {
                if (osmDataset != null)
                {
                    ComReleaser.ReleaseCOMObject(osmDataset);
                }

                if (naStatus == esriLicenseStatus.esriLicenseCheckedOut)
                {
                    aoInitialize.CheckInExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork);
                }

                if (gpUtil != null)
                {
                    ComReleaser.ReleaseCOMObject(gpUtil);
                }

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
            }
        }
        public void Execute(IArray paramvalues, ITrackCancel TrackCancel, IGPEnvironmentManager envMgr, IGPMessages message)
        {
            IAoInitialize aoInitialize = new AoInitializeClass();
            esriLicenseStatus naStatus = esriLicenseStatus.esriLicenseUnavailable;

            IGPUtilities2 gpUtil = null;
            IDataset osmDataset = null;

            try
            {
                if (!aoInitialize.IsExtensionCheckedOut(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork))
                    naStatus = aoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork);

                gpUtil = new GPUtilitiesClass();

                // OSM Dataset Param
                IGPParameter osmDatasetParam = paramvalues.get_Element(in_osmFeatureDataset) as IGPParameter;
                IDEDataset2 osmDEDataset = gpUtil.UnpackGPValue(osmDatasetParam) as IDEDataset2;
                if (osmDEDataset == null)
                {
                    message.AddError(120048, string.Format(resourceManager.GetString("GPTools_NullPointerParameterType"), osmDatasetParam.Name));
                    return;
                }

                osmDataset = gpUtil.OpenDatasetFromLocation(((IDataElement)osmDEDataset).CatalogPath) as IDataset;

                // Network Config File Param
                IGPParameter osmNetConfigParam = paramvalues.get_Element(in_NetworkConfigurationFile) as IGPParameter;
                IGPValue osmNetConfigFile = gpUtil.UnpackGPValue(osmNetConfigParam) as IGPValue;
                if ((osmNetConfigFile == null) || (string.IsNullOrEmpty(osmNetConfigFile.GetAsText())))
                {
                    message.AddError(120048, string.Format(resourceManager.GetString("GPTools_NullPointerParameterType"), osmNetConfigParam.Name));
                    return;
                }

                // Target Network Dataset Param
                IGPParameter ndsParam = paramvalues.get_Element(out_NetworkDataset) as IGPParameter;
                IDataElement deNDS = gpUtil.UnpackGPValue(ndsParam) as IDataElement;
                if (deNDS == null)
                {
                    message.AddError(120048, string.Format(resourceManager.GetString("GPTools_NullPointerParameterType"), ndsParam.Name));
                    return;
                }

                // Create Network Dataset
                using (NetworkDataset nd = new NetworkDataset(osmNetConfigFile.GetAsText(), osmDataset, deNDS.Name, message, TrackCancel))
                {
                    if (nd.CanCreateNetworkDataset())
                        nd.CreateNetworkDataset();
                }
            }
            catch (UserCancelException ex)
            {
                message.AddWarning(ex.Message);
            }
            catch (Exception ex)
            {
                message.AddError(120008, ex.Message);
#if DEBUG
                message.AddError(120008, ex.StackTrace);
#endif
            }
            finally
            {
                if (osmDataset != null)
                    ComReleaser.ReleaseCOMObject(osmDataset);

                if (naStatus == esriLicenseStatus.esriLicenseCheckedOut)
                    aoInitialize.CheckInExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork);

                if (gpUtil != null)
                    ComReleaser.ReleaseCOMObject(gpUtil);

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
            }
        }
Пример #16
0
        protected override void OnStart(string[] args)
        {
            bool isBound = ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);
            if (!isBound)
                return;

            IAoInitialize aoInitialize = new AoInitializeClass();
            aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            aoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeWorkflowManager);

            IJTXDatabaseManager databaseMan = new JTXDatabaseManagerClass();
            m_database = (IJTXDatabase2)databaseMan.GetActiveDatabase(false);

            //m_lastDate = (DateTime.Now;

            m_dataWorkspaceNames = m_database.GetDataWorkspaceNames(null);
            
            IJTXSpatialNotificationManager spatNotifMan = m_database.SpatialNotificationManager;
            m_regLayers = spatNotifMan.RegisteredLayerInfos;

            for (int i = 0; i < m_dataWorkspaceNames.Count; i++)
            {
                IWorkspace ws = m_database.GetDataWorkspace(m_dataWorkspaceNames.get_Item(i).DatabaseID, "");
                DateTime now = (DateTime)((IDatabaseConnectionInfo2)ws).ConnectionCurrentDateTime;
                m_workspaces.Add(new WorkspaceInfo(m_dataWorkspaceNames.get_Item(i).DatabaseID, ws, now));
            }

            m_timer.Enabled = true;
            
        }
Пример #17
0
        /// <summary>
        /// Check out spatial analyst license
        /// </summary>
        /// <returns>esriLicenseStatus</returns>
        public esriLicenseStatus GetSpatialAnalystLicense()
        {
            //Check out a Spatial Analyst license with the ArcView product.
            esriLicenseProductCode productCode =
                esriLicenseProductCode.esriLicenseProductCodeAdvanced;
            IAoInitialize pAoInitialize = new AoInitializeClass();
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
            //Check the productCode.
            licenseStatus = pAoInitialize.IsProductCodeAvailable(productCode);
            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                //Check the extensionCode.
                licenseStatus = pAoInitialize.IsExtensionCodeAvailable(productCode,
                    esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
                if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    //Initialize the license.
                    licenseStatus = pAoInitialize.Initialize(productCode);
                    if ((licenseStatus == esriLicenseStatus.esriLicenseCheckedOut))
                    {
                        //Check out the Spatial Analyst extension.
                        licenseStatus = pAoInitialize.CheckOutExtension
                            (esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst)
                            ;
                    }
                }
            }

            return licenseStatus;
        }