private void SetIsAutoSave(IExtractResultArray extractArray) { foreach (IExtractResultBase extractBase in extractArray.PixelMappers) { if (!(extractBase is IFileExtractResult)) { return; } } _isAutoSave = false; }
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); } }
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); }