public IPoint CreatePoint(IntPtr intptr_0) { TabRead._mitab_c_get_parts(intptr_0); IPoint pointClass = new Point() { X = TabRead._mitab_c_get_vertex_x(intptr_0, 0, 0), Y = TabRead._mitab_c_get_vertex_y(intptr_0, 0, 0) }; return(pointClass); }
public void AddTabField(IFieldsEdit ifieldsEdit_0, IntPtr intptr_0) { int num = TabRead._mitab_c_get_field_count(intptr_0); for (int i = 0; i < num; i++) { IFieldEdit field = new ESRI.ArcGIS.Geodatabase.Field() as IFieldEdit; field.Name_2 = TabRead._mitab_c_get_field_name(intptr_0, i); int num3 = TabRead._mitab_c_get_field_type(intptr_0, i); int num4 = TabRead._mitab_c_get_field_width(intptr_0, i); int num5 = TabRead._mitab_c_get_field_precision(intptr_0, i); switch (num3) { case 1: case 7: field.Type_2 = esriFieldType.esriFieldTypeString; field.Length_2 = num4; break; case 2: field.Type_2 = esriFieldType.esriFieldTypeInteger; field.Precision_2 = num4; break; case 3: field.Type_2 = esriFieldType.esriFieldTypeSmallInteger; field.Precision_2 = num4; break; case 4: field.Type_2 = esriFieldType.esriFieldTypeDouble; field.Precision_2 = num4; field.Scale_2 = num5; break; case 5: field.Type_2 = esriFieldType.esriFieldTypeSingle; field.Precision_2 = num4; break; case 6: field.Type_2 = esriFieldType.esriFieldTypeDate; break; default: { continue; } } ifieldsEdit_0.AddField(field); } }
public IMultipoint CreateMultipoint(IntPtr intptr_0) { IMultipoint multipointClass = new Multipoint() as IMultipoint; int num = TabRead._mitab_c_get_parts(intptr_0); object value = Missing.Value; for (int i = 0; i < num; i++) { int num1 = TabRead._mitab_c_get_vertex_count(intptr_0, i); for (int j = 0; j < num1; j++) { IPoint pointClass = new Point() { X = TabRead._mitab_c_get_vertex_x(intptr_0, i, j), Y = TabRead._mitab_c_get_vertex_y(intptr_0, i, j) }; (multipointClass as IPointCollection).AddPoint(pointClass, ref value, ref value); } } return(multipointClass); }
public IPolyline CreatePolyline(IntPtr intptr_0) { IPolyline polylineClass = new Polyline() as IPolyline; int num = TabRead._mitab_c_get_parts(intptr_0); object value = Missing.Value; for (int i = 0; i < num; i++) { int num1 = TabRead._mitab_c_get_vertex_count(intptr_0, i); IPath pathClass = new ESRI.ArcGIS.Geometry.Path() as IPath; for (int j = 0; j < num1; j++) { IPoint pointClass = new Point() { X = TabRead._mitab_c_get_vertex_x(intptr_0, i, j), Y = TabRead._mitab_c_get_vertex_y(intptr_0, i, j) }; (pathClass as IPointCollection).AddPoint(pointClass, ref value, ref value); } (polylineClass as IGeometryCollection).AddGeometry(pathClass, ref value, ref value); } return(polylineClass); }
public IPolygon CreatePolygon(IntPtr intptr_0) { IPolygon polygonClass = new Polygon() as IPolygon; int num = TabRead._mitab_c_get_parts(intptr_0); object value = Missing.Value; for (int i = 0; i < num; i++) { int num1 = TabRead._mitab_c_get_vertex_count(intptr_0, i); IRing ringClass = new ESRI.ArcGIS.Geometry.Ring() as IRing; for (int j = 0; j < num1; j++) { IPoint pointClass = new Point() { X = TabRead._mitab_c_get_vertex_x(intptr_0, i, j), Y = TabRead._mitab_c_get_vertex_y(intptr_0, i, j) }; (ringClass as IPointCollection).AddPoint(pointClass, ref value, ref value); } ringClass.Close(); (polygonClass as IGeometryCollection).AddGeometry(ringClass, ref value, ref value); } return(polygonClass); }
private void method_2(IntPtr intptr_0, IFeature ifeature_0) { int num = TabRead._mitab_c_get_type(intptr_0); IFields fields = ifeature_0.Fields; int num1 = -1; switch (num) { case 1: case 2: case 3: case 10: { num1 = fields.FindField("S_SID"); ifeature_0.Value[num1] = TabRead._mitab_c_get_symbol_no(intptr_0); num1 = fields.FindField("S_Size"); ifeature_0.Value[num1] = TabRead._mitab_c_get_symbol_size(intptr_0); num1 = fields.FindField("S_Color"); ifeature_0.Value[num1] = TabRead._mitab_c_get_symbol_color(intptr_0); return; } case 4: { num1 = fields.FindField("T_Text"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text(intptr_0); num1 = fields.FindField("T_Font"); ifeature_0.Value[num1] = TabRead._mitab_c_get_font(intptr_0); num1 = fields.FindField("T_Height"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text_height(intptr_0); num1 = fields.FindField("T_Weight"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text_width(intptr_0); num1 = fields.FindField("T_BKC"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text_bgcolor(intptr_0); num1 = fields.FindField("T_FKC"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text_fgcolor(intptr_0); num1 = fields.FindField("T_Angle"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text_angle(intptr_0); num1 = fields.FindField("T_Justi"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text_justification(intptr_0); num1 = fields.FindField("T_LT"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text_linetype(intptr_0); num1 = fields.FindField("T_Space"); ifeature_0.Value[num1] = TabRead._mitab_c_get_text_spacing(intptr_0); return; } case 5: case 6: { num1 = fields.FindField("L_PID"); ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_pattern(intptr_0); num1 = fields.FindField("L_Width"); ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_width(intptr_0); num1 = fields.FindField("L_Color"); ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_color(intptr_0); return; } case 7: { num1 = fields.FindField("P_BID"); ifeature_0.Value[num1] = TabRead._mitab_c_get_brush_pattern(intptr_0); num1 = fields.FindField("P_BBkC"); ifeature_0.Value[num1] = TabRead._mitab_c_get_brush_bgcolor(intptr_0); num1 = fields.FindField("P_BFRC"); ifeature_0.Value[num1] = TabRead._mitab_c_get_brush_fgcolor(intptr_0); num1 = fields.FindField("P_BTTP"); ifeature_0.Value[num1] = TabRead._mitab_c_get_brush_transparent(intptr_0); num1 = fields.FindField("P_PID"); ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_pattern(intptr_0); num1 = fields.FindField("P_PC"); ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_color(intptr_0); num1 = fields.FindField("P_PW"); ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_width(intptr_0); return; } case 8: case 9: { return; } default: { return; } } }
private IFeatureClass method_1(string string_0, int int_0, IntPtr intptr_0, IFeatureWorkspace ifeatureWorkspace_0, out bool bool_0) { IEnumFieldError enumFieldError; IFields field; IFeatureClass featureClass; bool_0 = false; try { IFeatureClass featureClass1 = null; string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(string_0); IFeatureClassDescription featureClassDescriptionClass = new FeatureClassDescription() as IFeatureClassDescription; string shapeFieldName = featureClassDescriptionClass.ShapeFieldName; IFields requiredFields = (featureClassDescriptionClass as IObjectClassDescription).RequiredFields; this.AddTabField(requiredFields as IFieldsEdit, intptr_0); this.AddTabField(int_0, requiredFields as IFieldsEdit); IFields field1 = requiredFields; IFieldChecker fieldCheckerClass = new FieldChecker() { ValidateWorkspace = ifeatureWorkspace_0 as IWorkspace }; fieldCheckerClass.Validate(field1, out enumFieldError, out field); IFieldEdit fieldEdit = field.Field[field.FindField(shapeFieldName)] as IFieldEdit; IGeometryDefEdit geometryDef = fieldEdit.GeometryDef as IGeometryDefEdit; if (this.ispatialReference_0 == null) { string str = TabRead._mitab_c_get_coordsys_xml(intptr_0); if (str == null) { this.ispatialReference_0 = geometryDef.SpatialReference; } else if (str.Length <= 0) { this.ispatialReference_0 = geometryDef.SpatialReference; } else { string str1 = string.Concat(System.IO.Path.GetTempPath(), "\\temp.prj"); StreamWriter streamWriter = new StreamWriter(str1); try { streamWriter.Write(str); } finally { if (streamWriter != null) { ((IDisposable)streamWriter).Dispose(); } } try { this.ispatialReference_0 = (new SpatialReferenceEnvironment()).CreateESRISpatialReferenceFromPRJFile(str1); } catch { this.ispatialReference_0 = geometryDef.SpatialReference; } try { File.Delete(str1); } catch { } } double num = 0; double num1 = 0; double num2 = 0; double num3 = 0; TabRead._mitab_c_get_mif_bounds(intptr_0, ref num, ref num1, ref num2, ref num3); SpatialReferenctOperator.ChangeCoordinateSystem(ifeatureWorkspace_0 as IGeodatabaseRelease, this.ispatialReference_0, false); num = num - 10; num1 = num1 + 10; num2 = num2 - 10; num3 = num3 + 10; this.ispatialReference_0.SetDomain(num, num1, num2, num3); } geometryDef.SpatialReference_2 = this.ispatialReference_0; TabRead._mitab_c_get_feature_count_bytype(intptr_0, int_0); switch (int_0) { case 1: case 2: case 3: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Point"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPoint; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } case 4: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Anno_Point"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPoint; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } case 5: case 6: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Line"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPolyline; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } case 7: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_Polygon"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryPolygon; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } case 8: case 9: { featureClass = null; return(featureClass); } case 10: { fileNameWithoutExtension = string.Concat(fileNameWithoutExtension, "_MultiPoint"); fileNameWithoutExtension = this.method_0(ifeatureWorkspace_0 as IWorkspace, fileNameWithoutExtension); geometryDef.GeometryType_2 = esriGeometryType.esriGeometryMultipoint; fieldEdit.GeometryDef_2 = geometryDef; featureClass1 = ifeatureWorkspace_0.CreateFeatureClass(fileNameWithoutExtension, field, null, null, esriFeatureType.esriFTSimple, shapeFieldName, ""); break; } default: { featureClass = null; return(featureClass); } } featureClass = featureClass1; return(featureClass); } catch (Exception exception) { Logger.Current.Error("", exception, ""); bool_0 = true; } featureClass = null; return(featureClass); }
public bool _tab2(string string_0, IFeatureWorkspace ifeatureWorkspace_0) { bool flag; bool flag1; IFeatureClass featureClass = null; IFeatureClass featureClass1 = null; IFeatureClass featureClass2 = null; IFeatureClass featureClass3 = null; IFeatureClass featureClass4 = null; string string0 = string_0; if (File.Exists(string0)) { IntPtr intPtr = TabRead._mitab_c_open(string0); if (intPtr.ToInt32() != 0) { try { try { int num = TabRead._mitab_c_next_feature_id(intPtr, -1); this.FeatureClass = null; while (num != -1) { IntPtr intPtr1 = TabRead._mitab_c_read_feature(intPtr, num); int num1 = TabRead._mitab_c_get_type(intPtr1); switch (num1) { case 1: case 2: case 3: { if (featureClass == null) { featureClass = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0, out flag1); if (flag1) { flag = false; return(flag); } } this.FeatureClass = featureClass; goto case 9; } case 4: { if (featureClass4 == null) { featureClass4 = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0, out flag1); if (flag1) { flag = false; return(flag); } } this.FeatureClass = featureClass4; goto case 9; } case 5: case 6: { if (featureClass2 == null) { featureClass2 = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0, out flag1); if (flag1) { flag = false; return(flag); } } this.FeatureClass = featureClass2; goto case 9; } case 7: { if (featureClass3 == null) { featureClass3 = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0, out flag1); if (flag1) { flag = false; return(flag); } } this.FeatureClass = featureClass3; goto case 9; } case 8: case 9: { if (this.FeatureClass != null) { try { IFeature feature = this.FeatureClass.CreateFeature(); IGeometry geometry = this.CreateGeometry(num1, intPtr1); if (geometry is ITopologicalOperator) { (geometry as ITopologicalOperator).Simplify(); } try { this.method_2(intPtr1, feature); } catch (Exception exception) { Logger.Current.Error("", exception, ""); } int num2 = TabRead._mitab_c_get_field_count(intPtr); feature.Fields.FindField("Shape"); for (int i = 0; i < num2; i++) { string str = TabRead._mitab_c_get_field_name(intPtr, i); int num3 = TabRead._mitab_c_get_field_type(intPtr, i); string str1 = TabRead._mitab_c_get_field_as_string(intPtr1, i); int num4 = feature.Fields.FindField(str); if (num4 == -1) { try { if (num3 != 6) { feature.Value[num4] = str1; } else if (str1.Length == 8) { str1 = str1.Insert(6, "-"); str1 = str1.Insert(4, "-"); feature.Value[num4] = DateTime.Parse(str1); } } catch { } } feature.Shape = geometry; } feature.Store(); } catch (Exception exception1) { Logger.Current.Error("", exception1, ""); } if (this.ifeatureProgress_StepEventHandler_0 != null) { this.ifeatureProgress_StepEventHandler_0(); } } TabRead._mitab_c_destroy_feature(intPtr1); num = TabRead._mitab_c_next_feature_id(intPtr, num); continue; } case 10: { if (featureClass1 == null) { featureClass1 = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0, out flag1); if (flag1) { flag = false; return(flag); } } this.FeatureClass = featureClass1; goto case 9; } default: { goto case 9; } } } } catch (Exception exception2) { Logger.Current.Error("", exception2, ""); } } finally { } TabRead._mitab_c_close(intPtr); flag = true; } else { MessageBox.Show(string.Concat("无法打开 -", string0, "- 文件")); flag = false; } } else { flag = false; } return(flag); }