public StandardItem Import() { StandardItem sItem = new StandardItem(); sItem.Type = enumItemType.Standard; sItem.Name = this.StandardName; IList <StandardItem> subList = new List <StandardItem>(); sItem.SubItems = subList; IEnumDataset enDSN = this.Source.get_Datasets(esriDatasetType.esriDTAny); IDataset dsName = enDSN.Next(); while (dsName != null) { switch (dsName.Type) { case esriDatasetType.esriDTFeatureDataset: SendMessage(string.Format("正在导入矢量数据集[{0}]及其子图层...", dsName.Name)); StandardItem sItemDs = StandardHelper.Import(dsName as IFeatureDataset); sItemDs.Parent = sItem; subList.Add(sItemDs); break; case esriDatasetType.esriDTFeatureClass: SendMessage(string.Format("正在导入矢量图层[{0}]...", dsName.Name)); StandardItem sItemClass = StandardHelper.Import(dsName as IFeatureClass); sItemClass.Parent = sItem; subList.Add(sItemClass); break; } dsName = enDSN.Next(); } return(sItem); }
private bool CreateItemToWorkspace(StandardItem sItem) { if (fws == null || sItem == null) { return(false); } StandardHelper.InitItemDetial(sItem); switch (sItem.Type) { case enumItemType.Standard: foreach (StandardItem subItem in sItem.SubItems) { bool result = CreateItemToWorkspace(subItem); if (!result) { return(false); } } break; case enumItemType.FeatureDataset: SendMessage(string.Format("正在创建FeatureDataset[{0}]...", sItem.Name)); try { IFeatureDataset fds = (fws as IFeatureWorkspace).CreateFeatureDataset(sItem.Name, sItem.SpatialReference); foreach (StandardItem subItem in sItem.SubItems) { SendMessage(string.Format("正在创建矢量图层[{0}]...", sItem.Name)); try { StandardHelper.InitItemDetial(subItem); StandardHelper.CreateFeatureClass(fds, subItem.Details as FeatureClassInfo); } catch (Exception exp) { SendMessage(string.Format("创建矢量图层[{0}]失败", sItem.Name)); Environment.Logger.AppendMessage(Define.enumLogType.Debug, string.Format("创建矢量图层[{0}]失败,信息:{1}", sItem.Name, exp)); return(false); } } } catch (Exception exp) { SendMessage(string.Format("创建FeatureDataset[{0}]失败", sItem.Name)); Environment.Logger.AppendMessage(Define.enumLogType.Debug, string.Format("创建FeatureDataset[{0}]失败,信息:{1}", sItem.Name, exp)); return(false); } break; case enumItemType.FeatureClass: SendMessage(string.Format("正在创建矢量图层[{0}]...", sItem.Name)); try { if (sItem.Parent != null && sItem.Parent.Type == enumItemType.FeatureDataset) { IFeatureDataset fdsParent = (fws as IFeatureWorkspace).OpenFeatureDataset(sItem.Parent.Name); StandardHelper.CreateFeatureClass(fdsParent, sItem.Details as FeatureClassInfo); } else { StandardHelper.CreateFeatureClass(fws, sItem.Details as FeatureClassInfo); } } catch (Exception exp) { SendMessage(string.Format("创建矢量图层[{0}]失败", sItem.Name)); Environment.Logger.AppendMessage(Define.enumLogType.Debug, string.Format("创建矢量图层[{0}]失败,信息:{1}", sItem.Name, exp)); return(false); } break; } return(true); }