/// <summary> /// 生成IStudy对象 /// </summary> /// <param name="item">构建IStudy所需要的信息对象</param> /// <returns></returns> public IStudy CreateInstance(StudyTemplate item) { if (item.StudyResultTypeValue == StudyResultType.Discrete) { return GenerateDiscreteStudy(item); } else { return GenerateIntervalStudy(item); } }
private IStudy GenerateDiscreteStudy(StudyTemplate item) { if (item.ValueMarixType == ValueMatrixType.IntType) { IntDiscreteStudy intStudy = new IntDiscreteStudy(); foreach (GeoRasterStyle style in item.StyleList) { intStudy.StyleList.Add((GeoDiscreteSytle)style); } return intStudy; } else { ShortDiscreteStudy shortStudy = new ShortLegendStudy(); foreach (GeoRasterStyle style in item.StyleList) { shortStudy.StyleList.Add((GeoDiscreteSytle)style); } return shortStudy; } }
private IStudy GenerateIntervalStudy(StudyTemplate item) { if (item.ValueMarixType == ValueMatrixType.IntType) { IntIntervalStudy intStudy = new IntIntervalStudy(); foreach (GeoRasterStyle style in item.StyleList) { //intStudy.ca intStudy.StyleList.Add((GeoIntervalSytle)style); } return intStudy; } else { ShortIntervalStudy shortStudy = new ShortIntervalStudy(); foreach (GeoRasterStyle style in item.StyleList) { shortStudy.StyleList.Add((GeoIntervalSytle)style); } return shortStudy; } }
private IStudy CreateStudyByTemplate(StudyTemplate studyTemplate) { IStudy study = null; if (studyTemplate != null) { if (this.m_SpecialStudyList.Contains(studyTemplate.Name)) { this.CreateBestServerStudy(studyTemplate.ValueMarixType, studyTemplate.StudyResultTypeValue, studyTemplate.Name, ref study); this.CreateMcsStudy(studyTemplate.ValueMarixType, studyTemplate.StudyResultTypeValue, studyTemplate.Name, ref study); } else { study = this.CreateStudy(studyTemplate.ValueMarixType, studyTemplate.StudyResultTypeValue); } study.Name = studyTemplate.Name; study.Unit = studyTemplate.Unit; study.IsBasic = studyTemplate.IsBasic; if (studyTemplate.StudyResultTypeValue == StudyResultType.Discrete) { IDiscreteStudy study2 = study as IDiscreteStudy; study2.StyleList.AddRange(studyTemplate.StyleList.ConvertAll<GeoDiscreteSytle>(new Converter<GeoRasterStyle, GeoDiscreteSytle>(this.ConvertToDiscrete))); return study; } IIntervalStudy study3 = study as IIntervalStudy; study3.StyleList.AddRange(studyTemplate.StyleList.ConvertAll<GeoIntervalSytle>(new Converter<GeoRasterStyle, GeoIntervalSytle>(this.ConvertToInterval))); } return study; }