public bool Init()
        {
            _messages = new List <string>();
            if (System.IO.File.Exists(SaveFilePath))
            {
                System.IO.File.Delete(SaveFilePath);
            }
            if (!ArcGISFileHelper.CreatePersonalDataBase(SaveFilePath))//创建数据库文件失败
            {
                return(false);
            }
            if (FeatureClass != null)
            {
                var values = FeatureClass.GetUniqueValue(FieldName);
                var tool   = new Select();
                foreach (var item in values)
                {
                    tool.in_features       = FeatureClass;
                    tool.out_feature_class = string.Format("{0}\\{1}_{2}", SaveFilePath, LayerName, item);
                    tool.where_clause      = string.Format("[{0}] = '{1}'", FieldName, item);
                    if (!GPHelper.Excute(tool))
                    {
                        _messages.Add(string.Format("执行{0}发生错误", tool.where_clause));
                    }
                }

                return(true);
            }
            return(false);
        }
        public bool Init()
        {
            _messages = new List <string>();
            _tool     = new Clip();
            var clipWorkspace = WorkspaceManager.OpenAccessWorkSpace(ClipDataBasePath);

            if (clipWorkspace == null)
            {
                return(false);
            }
            var clipLayers = WorkspaceManager.AnalyzeLayers(clipWorkspace);

            foreach (var cliplayer in clipLayers)
            {
                if (ClipLayers.Contains(cliplayer.Name))
                {
                    if (cliplayer is IFeatureLayer)
                    {
                        var featureLayer = cliplayer as IFeatureLayer;
                        if (featureLayer != null)
                        {
                            var featureClass = featureLayer.FeatureClass;
                            if (featureClass != null)
                            {
                                var name             = featureClass.AliasName;
                                var saveDataBasePath = System.IO.Path.Combine(SaveFolder, name + ".mdb");
                                if (System.IO.File.Exists(saveDataBasePath))
                                {
                                    System.IO.File.Delete(saveDataBasePath);
                                }
                                if (!ArcGISFileHelper.CreatePersonalDataBase(saveDataBasePath))
                                {
                                    continue;
                                }

                                Program(saveDataBasePath, featureClass);
                            }
                        }
                    }
                }
            }
            return(_messages.Count == 0);
        }
        private bool Work(string filePath)
        {
            IFeatureClass featureClass = ArcGISFileHelper.GetShpFeatureClass(filePath);

            if (featureClass == null)
            {
                return(false);
            }
            IGeoDataset           geoDataset           = featureClass as IGeoDataset;
            IGeoDatasetSchemaEdit geoDatasetSchemaEdit = geoDataset as IGeoDatasetSchemaEdit;

            if (geoDatasetSchemaEdit.CanAlterSpatialReference == true)
            {
                geoDatasetSchemaEdit.AlterSpatialReference(SpatialReference);
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #4
0
        public bool Init()
        {
            if (!System.IO.Directory.Exists(Folder))
            {
                Error += string.Format("文件路径:{0}不存在或不正确;", Folder);
                return(false);
            }
            Files = FileManager.GetSpecialFiles(Folder, "*.shp");
            if (Files == null || Files.Count == 0)
            {
                Error += string.Format("未识别文件夹中的shapefile文件或者为空;");
                return(false);
            }
            MaxValue = Files.Count;
            var file             = Files[0];
            var basefeatureClass = ArcGISFileHelper.GetShpFeatureClass(file);

            if (basefeatureClass == null)
            {
                Error += string.Format("无法获取文件:{0};", System.IO.Path.GetFileNameWithoutExtension(file));
                return(false);
            }
            IGeoDataset geoDataset = basefeatureClass as IGeoDataset;

            FeatureClass = FeatureClassManager.CreateFeatrueClass(this.SavaFilePath, geoDataset.SpatialReference, basefeatureClass.ShapeType);
            if (FeatureClass == null)
            {
                Error += string.Format("无法生成shapefile文件,请确保程序以管理员运行;");
                return(false);
            }
            // InsertFeatureCursor = FeatureClass.Insert(true);
            Fields = new List <TangField>()
            {
                new TangField()
                {
                    Name = "TCMC", Alias = "图层名称", Type = esriFieldType.esriFieldTypeString, Index = FeatureClass.Fields.FindField("TCMC")
                }
            };
            return(true);
        }