コード例 #1
0
        /// <summary>
        /// 删除栅格图层字段(字符串字段)
        /// </summary>
        /// <param name="rasterLayer">栅格图层</param>
        /// <returns></returns>
        public static IRasterLayer DeleteRasterStringField(IRasterLayer rasterLayer)
        {
            if (!IsRasterLayerHaveTable(rasterLayer.Raster))
            {
                return(rasterLayer);
            }
            ITable oldTable = (ITable)rasterLayer;
            //判断是否存在字符串字段
            bool hasString = LayerFieldInfo.IsTableHasFieldType(oldTable, esriFieldType.esriFieldTypeString);

            //不需要删除,则返回原始图层
            if (!hasString)
            {
                return(rasterLayer);
            }
            ILayer copyLayer = RasterLayerCopy.CopyAsTempRasterLayer(rasterLayer.FilePath);

            if (copyLayer == null)
            {
                return(null);
            }
            //删除字符串类型字段
            ILayer layer = DeleteFieldClass.DeleteFieldType(copyLayer, esriFieldType.esriFieldTypeString);

            return((IRasterLayer)layer);
        }
コード例 #2
0
        /// <summary>
        /// 添加新字段
        /// </summary>
        /// <param name="fieldName">字段名称</param>
        /// <param name="fieldType">字段类型</param>
        public void AddNewFiled(string fieldName, esriFieldType fieldType)
        {
            ITable iTable = AttributeTableClass.GetITableByLayer(newFieldLayer);

            //先删除
            DeleteFieldClass.DeleteField(iTable, fieldName);
            //再添加
            iTable.AddField(NewFieldClass.GetNewFieldEdit(fieldName, fieldType));
            AddTableColumn(fieldName, fieldName);
        }
コード例 #3
0
        /// <summary>
        /// 添加多个新字段
        /// </summary>
        /// <param name="fieldNames"></param>
        /// <param name="fieldType">字段类型</param>
        public void AddNewFields(List <string> fieldNames, esriFieldType fieldType)
        {
            ITable iTable = AttributeTableClass.GetITableByLayer(newFieldLayer);

            foreach (string fieldName in fieldNames)
            {
                //先删除
                DeleteFieldClass.DeleteField(iTable, fieldName);
                //再添加
                iTable.AddField(NewFieldClass.GetNewFieldEdit(fieldName, fieldType));
            }
            AddTableColumns(fieldNames);
        }