示例#1
0
 private void SetIsAutoSave(IExtractResultArray extractArray)
 {
     foreach (IExtractResultBase extractBase in extractArray.PixelMappers)
     {
         if (!(extractBase is IFileExtractResult))
         {
             return;
         }
     }
     _isAutoSave = false;
 }
示例#2
0
        public static void DisplayResult(ISmartSession session, IMonitoringSubProduct subProduct, IExtractResult restult, bool extract)
        {
            if (restult == null)
            {
                ClosedActiveMonitoringSubProduct(session, subProduct);
                return;
            }
            IMonitoringSession msession = session.MonitoringSession as IMonitoringSession;

            if (restult is IPixelIndexMapper)
            {
                DisplayPixelIndexMapper(restult, session);
            }
            else if (restult is IFileExtractResult)
            {
                DisplayFileResult(subProduct, session, restult);
            }
            else if (restult is IExtractResultArray)
            {
                IExtractResultArray  extResultMapper = restult as ExtractResultArray;
                IExtractResultBase[] mappers         = extResultMapper.PixelMappers;
                if (mappers == null || mappers.Length == 0)
                {
                    return;
                }
                foreach (IExtractResultBase mapper in mappers)
                {
                    if (mapper is IFileExtractResult)
                    {
                        DisplayFileResult(subProduct, session, mapper as IExtractResult);
                    }
                    else if (mapper is IPixelIndexMapper && extract)
                    {
                        DisplayPixelIndexMapper(mapper as IPixelIndexMapper, session);
                    }
                    else
                    {
                        DisplayPixelFeatureMapper(session, subProduct, mapper as IExtractResult, false);
                    }
                }
            }
            else if (restult is IValueExtractResult)
            {
                DisplayValueResult(session, subProduct, restult);
            }
            else
            {
                DisplayPixelFeatureMapper(session, subProduct, restult, true);
            }
            ClosedActiveMonitoringSubProduct(session, subProduct);
        }
        public void HandleResult(IContextEnvironment contextEnvironment, IMonitoringProduct product, IMonitoringSubProduct subProduct, IExtractResult result)
        {
            (_session.MonitoringSession as IMonitoringSession).ChangeActiveSubProduct(subProduct.Identify);
            if (subProduct.Identify == "DBLV")//只有判识结果在叠加在影像上
            {
                (_session.MonitoringSession as IMonitoringSession).ExtractingSession.Start((_session.SmartWindowManager.ActiveCanvasViewer), product, subProduct);
                DisplayResultClass.DisplayResult(_session, subProduct, result, true);
            }
            else
            {
                DisplayResultClass.DisplayResult(_session, subProduct, result, true);
            }
            string fname;

            if (result is IPixelIndexMapper)
            {
                fname = (_session.MonitoringSession as IMonitoringSession).ExtractingSession.AddToWorkspace((_session.MonitoringSession as IMonitoringSession).Workspace);
                DisplayResultClass._contextEnvironment.PutContextVar(subProduct.Identify, fname);
            }
            else if (result is IExtractResultArray)
            {
                IExtractResultArray  extResultMapper = result as ExtractResultArray;
                IExtractResultBase[] mappers         = extResultMapper.PixelMappers;
                if (mappers == null || mappers.Length == 0)
                {
                    return;
                }
                foreach (IExtractResultBase mapper in mappers)
                {
                    if (mapper is IPixelIndexMapper)
                    {
                        fname = (_session.MonitoringSession as IMonitoringSession).ExtractingSession.AddToWorkspace((_session.MonitoringSession as IMonitoringSession).Workspace);
                        DisplayResultClass._contextEnvironment.PutContextVar(subProduct.Identify, fname);
                    }
                }
            }
            else if (result is IFileExtractResult && subProduct.Identify == "DBLV")
            {
                DisplayResultClass._contextEnvironment.PutContextVar(subProduct.Identify, (result as IFileExtractResult).FileName);
            }
        }
示例#4
0
 public override IExtractResult Make(Action <int, string> progressTracker, IContextMessage contextMessage)
 {
     if (_argumentProvider == null)
     {
         return(null);
     }
     if (_argumentProvider.GetArg("AlgorithmName") == null)
     {
         return(null);
     }
     if (_argumentProvider.GetArg("AlgorithmName").ToString() == "GFRFAlgorithm")
     {
         bool yearStat = bool.Parse(_argumentProvider.GetArg("YearStat").ToString());
         _cycFlag = yearStat ? "POAY" : "POAM";
         SetOutIdentify(yearStat);
         _resolution = Obj2Double(_argumentProvider.GetArg("Resolution"));
         if (_resolution == 0)
         {
             PrintInfo("输出分辨率不能为0");
             return(null);
         }
         string[] files = GetStringArray("SelectedRGFRFiles");
         if (files == null || files.Length == 0)
         {
             return(null);
         }
         for (int i = 0; i < files.Length; i++)
         {
             if (!File.Exists(files[i]) || (Path.GetExtension(files[i]).ToUpper() != ".SHP" && Path.GetExtension(files[i]).ToUpper() != ".TXT"))
             {
                 PrintInfo("请选择正确格式的文件!");
                 return(null);
             }
         }
         IExtractResultArray array = CalcGFRF(files);
         return(array);
     }
     return(null);
 }