Exemple #1
0
 public bool AddFields(baseFieldList pNewFields)
 {
     if (m_pFeatureLayer == null || m_pFeatureLayer.FeatureClass == null || pNewFields.Count == 0)
     {
         return(false);
     }
     try
     {
         IFeatureClass  fc = m_pFeatureLayer.FeatureClass;
         IWorkspaceEdit w  = (fc as IDataset).Workspace as IWorkspaceEdit;
         for (int i = 0; i < pNewFields.Count; i++)
         {
             baseField pNewField = pNewFields.get_Element(i);
             if (pNewField.strFieldName.Length == 0 || m_pFeatureLayer.FeatureClass.Fields.FindField(pNewField.strFieldName) != -1)
             {
                 continue;
             }
             IField pField;
             pField = new FieldClass();
             IFieldEdit pFieldEdit;
             pFieldEdit             = pField as IFieldEdit;
             pFieldEdit.Type_2      = pNewField.ftFieldType;
             pFieldEdit.Name_2      = pNewField.strFieldName;
             pFieldEdit.AliasName_2 = pNewField.strFieldAliasName;
             if (pNewField.ftFieldType == esriFieldType.esriFieldTypeString)
             {
                 pFieldEdit.Length_2 = pNewField.nFieldLen;
             }
             m_pFeatureLayer.FeatureClass.AddField(pField);
         }
         return(true);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
     return(false);
 }
Exemple #2
0
        IFields CreateFields(baseFieldList pNewFields)
        {
            IFields     pFields    = new FieldsClass();
            IFieldsEdit fieldsEdit = pFields as IFieldsEdit;
            //Shape Field
            IField     fd1  = new FieldClass();
            IFieldEdit fde1 = fd1 as IFieldEdit;

            fde1.Name_2 = "Shape";
            fde1.Type_2 = esriFieldType.esriFieldTypeGeometry;
            IGeometryDef             pGeomDef                 = new GeometryDefClass();
            IGeometryDefEdit         pGeomDefEdit             = pGeomDef as IGeometryDefEdit;
            ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironment();

            pGeomDefEdit.GeometryType_2     = m_nGeometryType;
            pGeomDefEdit.SpatialReference_2 = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984) as ISpatialReference;
            fde1.GeometryDef_2 = pGeomDef;
            fieldsEdit.AddField(fde1);

            for (int i = 0; i < pNewFields.Count; i++)
            {
                baseField pNewField = pNewFields.get_Element(i);
                IField    pField;
                pField = new FieldClass();
                IFieldEdit pFieldEdit;
                pFieldEdit             = pField as IFieldEdit;
                pFieldEdit.Type_2      = pNewField.ftFieldType;
                pFieldEdit.Name_2      = pNewField.strFieldName;
                pFieldEdit.AliasName_2 = pNewField.strFieldAliasName;
                if (pNewField.ftFieldType == esriFieldType.esriFieldTypeString)
                {
                    pFieldEdit.Length_2 = pNewField.nFieldLen;
                }
                fieldsEdit.AddField(pField);
            }
            return(pFields);
        }
Exemple #3
0
        public static baseFieldList get_Fields(IFeature pFeature)
        {
            baseFieldList pFields = new baseFieldList();

            if (pFeature == null)
            {
                return(null);
            }
            for (int i = 0; i < pFeature.Fields.FieldCount; i++)
            {
                IField pField = pFeature.Fields.get_Field(i);
                if (GeoBaseLib.IsSysField(pField.Name))
                {
                    continue;
                }
                baseField smField = new baseField();
                smField.strFieldName      = pField.Name;
                smField.strFieldAliasName = pField.Name;
                smField.ftFieldType       = pField.Type;
                smField.nFieldLen         = pField.Length;
                pFields.Add(smField);
            }
            return(pFields);
        }