Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }