public bool Init() { if (!System.IO.File.Exists(PolylineFile)) { return(false); } _polylineFeatureClass = PolylineFile.GetShpFeatureClass(); if (_polylineFeatureClass == null) { return(false); } ISpatialReference spatialReference = SpatialReferenceManager.GetSpatialReference(_polylineFeatureClass); _polygonFeatureClass = FeatureClassManager.CreateFeatrueClass(PolygonFile, spatialReference, esriGeometryType.esriGeometryPolygon); if (_polygonFeatureClass == null) { return(false); } _index = _polygonFeatureClass.Fields.FindField("TCMC"); if (_index > -1) { return(true); } return(false); }
public bool Init() { if (!System.IO.File.Exists(PolylineFile)) { _error += string.Format("文件:{0} 不存在", PolylineFile); return(false); } _polylineFeatureClass = PolylineFile.GetShpFeatureClass(); if (_polylineFeatureClass == null) { _error += string.Format("无法读取文件:{0}", PolylineFile); return(false); } ISpatialReference spatialReference = SpatialReferenceManager.GetSpatialReference(_polylineFeatureClass); if (System.IO.File.Exists(PolygonFile)) { System.IO.File.Delete(PolygonFile); } _polygonFeatureClass = FeatureClassManager.CreateFeatrueClass(PolygonFile, spatialReference, esriGeometryType.esriGeometryPolygon); if (_polygonFeatureClass == null) { _error += string.Format("创建文件:{0} 失败", PolygonFile); return(false); } return(true); }
/// <summary> /// 初始化 /// </summary> /// <returns></returns> private bool Init() { if (CADFiles == null || CADFiles.Count == 0) { _error += "CAD文件列表为空;"; return(false); } if (System.IO.File.Exists(PolylineFile)) { System.IO.File.Delete(PolylineFile); } var first = CADFiles[0]; var featureClass = CADManager.GetFeatureClass(first); if (featureClass == null) { _error += string.Format("读取到的文件:{0} 无法读取信息;", System.IO.Path.GetFileNameWithoutExtension(first)); return(false); } ISpatialReference spatialReference = SpatialReferenceManager.GetSpatialReference(featureClass); _polylineFeatureClass = FeatureClassManager.CreateFeatrueClass(PolylineFile, spatialReference, esriGeometryType.esriGeometryPolyline); if (_polylineFeatureClass == null) { _error += string.Format("创建shapefile文件:{0} 失败!", PolylineFile); return(false); } _errorList = new List <string>(); return(true); }
private bool Init() { if (!System.IO.Directory.Exists(_folder)) { _errors.Add(string.Format("路径:\"{0}\"不存在,请核对目录路径", _folder)); return(false); } _files = FileManager.GetSpecialFiles(_folder, "*.txt"); if (_files.Count == 0) { _errors.Add(string.Format("路径:\"{0}\"下不存在txt文件", _folder)); return(false); } _files = _files.OrderBy(e => e).ToList(); _featureClass = FeatureClassManager.CreateFeatrueClass(_saveFilePath, SpatialReferenceManager.Get40SpatialReference(), ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon); if (_featureClass == null) { _errors.Add("创建要素类失败!"); return(false); } _featureClass.AddFields(new List <Models.TangField> { new Models.TangField { Name = "FILENAME", Alias = "文件名称", Type = esriFieldType.esriFieldTypeString } }); _featureCursor = _featureClass.Insert(true); return(true); }
private bool Init() { if (!Directory.Exists(_folder)) { _message += string.Format("目录:\"{0}\"不存在,请核对目录!", _folder); return(false); } _txtFiles = FileManager.GetSpecialFiles(_folder, "*.txt"); if (string.IsNullOrEmpty(_saveFilePath) || System.IO.File.Exists(_saveFilePath)) { _message += string.Format("保存路径:\"{0}\"不正确或者已存在文件,请核对保存路径!", _saveFilePath); return(false); } _featureClass = FeatureClassManager.CreateFeatrueClass(_saveFilePath, SpatialReferenceManager.Get40SpatialReference(), ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon); if (_featureClass == null) { _message += string.Format("创建要素类失败!"); return(false); } _featureClass.AddFields(new List <TangField> { new TangField { Name = "XMLX", Alias = "项目类型", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "BZ", Alias = "备注", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "NF", Alias = "年份", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "FILENAME", Alias = "文件名字", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "DKBH", Alias = "地块编号", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "DKMC", Alias = "地块名称", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "JLTXSX", Alias = "JLTXSX", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "TFH", Alias = "TFH", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "DKYT", Alias = "地块用途", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "DLBM", Alias = "地类编码", Type = esriFieldType.esriFieldTypeString } }); _featureCursor = FeatureClass.Insert(true); return(true); }
private bool Init() { if (!System.IO.File.Exists(_txtFilePath)) { _errors.Add(string.Format("路径:\"{0}\"文件不存在,请核对文件!", _txtFilePath)); return(false); } if (System.IO.File.Exists(_saveFilePath)) { System.IO.File.Delete(_saveFilePath); } _featureClass = FeatureClassManager.CreateFeatrueClass(_saveFilePath, SpatialReferenceManager.Get40SpatialReference(), ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon); if (_featureClass == null) { _errors.Add("创建要素类失败!"); return(false); } _featureClass.AddFields(new List <Models.TangField> { new TangField { Name = "XMLX", Alias = "项目类型", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "BZ", Alias = "备注", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "NF", Alias = "年份", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "FILENAME", Alias = "文件名字", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "DKBH", Alias = "地块编号", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "DKMC", Alias = "地块名称", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "JLTXSX", Alias = "JLTXSX", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "TFH", Alias = "TFH", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "DKYT", Alias = "地块用途", Type = esriFieldType.esriFieldTypeString }, new TangField { Name = "DLBM", Alias = "地类编码", Type = esriFieldType.esriFieldTypeString } }); _featureCursor = _featureClass.Insert(true); return(true); }
private bool TranslatePolylineToPolygon(string inputFilePath, string SaveFilePath, string layerName) { IFeatureClass featureClass = inputFilePath.GetShpFeatureClass(); if (featureClass == null) { return(false); } ISpatialReference spatialReference = SpatialReferenceManager.GetSpatialReference(featureClass); IFeatureClass createFeatureClass = FeatureClassManager.CreateFeatrueClass(SaveFilePath, spatialReference, esriGeometryType.esriGeometryPolygon); if (createFeatureClass == null) { return(false); } var index = createFeatureClass.Fields.FindField("TCMC"); if (index > -1) { var cursor2 = createFeatureClass.Insert(true); IFeatureCursor featureCursor = featureClass.Search(null, false); IFeature feature = featureCursor.NextFeature(); while (feature != null) { if (IsPolygon(feature)) { var pg = GeneratePolygon(feature.ShapeCopy); if (pg != null) { var buffer = createFeatureClass.CreateFeatureBuffer(); buffer.Shape = pg; buffer.set_Value(index, layerName); cursor2.InsertFeature(buffer); } } feature = featureCursor.NextFeature(); } cursor2.Flush(); System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor); } return(true); }
private bool Init() { if (!System.IO.File.Exists(_txtFilePath)) { _errors.Add(string.Format("路径:\"{0}\"文件不存在,请核对!", _txtFilePath)); return(false); } if (System.IO.File.Exists(_saveFilePath)) { System.IO.File.Delete(_saveFilePath); } _featureClass = FeatureClassManager.CreateFeatrueClass(_saveFilePath, SpatialReferenceManager.Get40SpatialReference(), ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon); if (_featureClass == null) { _errors.Add("创建要素类失败"); return(false); } _featureCursor = _featureClass.Insert(true); return(true); }
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); }
public override bool Work() { base.Work(); if (!Init()) { //System.Runtime.InteropServices.Marshal.ReleaseComObject(InsertFeatureCursor); ProgressDialog.HideDialog(); return(false); } foreach (var file in Files) { Count++; var tcmc = System.IO.Path.GetFileNameWithoutExtension(file); StepProgressor.Message = string.Format("正在分析{0},进度{1}/{2}", tcmc, Count, MaxValue); CanContinue = TrackCancel.Continue(); if (!CanContinue) { break; } var inputfeatureClass = file.GetShpFeatureClass(); if (inputfeatureClass != null) { if (FeatureClass == null) { IGeoDataset geodataset = inputfeatureClass as IGeoDataset; FeatureClass = FeatureClassManager.CreateFeatrueClass(this.SavaFilePath, geodataset.SpatialReference, inputfeatureClass.ShapeType); } if (FeatureClass != null) { CheckField(FeatureClass, inputfeatureClass); var insertfeaturecursor = FeatureClass.Insert(true); IFeatureBuffer featureBuffer = null; IFeatureCursor featureCursor = inputfeatureClass.Search(null, false); IFeature feature = featureCursor.NextFeature(); while (feature != null) { #region featureBuffer = FeatureClass.CreateFeatureBuffer(); var copy = feature.ShapeCopy; var aw = copy as IZAware; if (aw.ZAware == true) { aw.ZAware = false; } featureBuffer.Shape = copy; foreach (var field in Fields) { if (field.Name == "TCMC") { featureBuffer.set_Value(field.Index, tcmc); continue; } var a = feature.Fields.FindField(field.Name); if (a != -1) { featureBuffer.set_Value(field.Index, feature.get_Value(a)); } } try { object featureOID = insertfeaturecursor.InsertFeature(featureBuffer); insertfeaturecursor.Flush(); } catch (Exception ex) { Error += string.Format("在读取{0}时,合并错误,错误信息:{1};", tcmc, ex.Message); break; } #endregion feature = featureCursor.NextFeature(); } System.Runtime.InteropServices.Marshal.ReleaseComObject(insertfeaturecursor); System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor); } } else { Error += string.Format("无法打开文件:{0};", tcmc); } StepProgressor.Step(); } // System.Runtime.InteropServices.Marshal.ReleaseComObject(InsertFeatureCursor); ProgressDialog.HideDialog(); return(true); }