博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
矢量数据的属性值的添加、编辑、删除
阅读量:5864 次
发布时间:2019-06-19

本文共 1600 字,大约阅读时间需要 5 分钟。

/* 以下代码实现的是矢量数据的更新,删除*/

/* 注意可以用store,但是效率比较低,每次都写一下文件,不如一次性flush一下*/

/*首先定义游标,然后.NextFeature() 依次执行,但是注意select产生的游标不能应用于update 和 Insert*/

/*代码比较乱,包含添加、删除、更新三个方面的操作,没有注释掉的是更新操作,查询之前的文章介绍过*/

#region 修改字段的值

IDataset dataset = pFlayerClass as IDataset;            

IWorkspace workspace = dataset.Workspace;            

IWorkspaceEdit wse = workspace as IWorkspaceEdit;            

wse.StartEditing(false);            

wse.StartEditOperation();            

int proField = pFlayerClass.FindField("SPEEDCLASS");

// null 就是全部都查询不用再新建IQUERY... 了                        

int cnt = pFlayerClass.FeatureCount(null);

// 要添加数据必须使用 Insert产生的Cursor 不要使用Select生成的Cursor,如下所示            

//IFeatureCursor featureCursor = pFlayerClass.Insert(true);

// 要编辑数据就是用Update生成的Cursor              

IFeatureCursor featureCursor = pFlayerClass.Update(null,true);  

// 如果要添加数据,就使用Buffer 最后flush一下          

//IFeatureBuffer featureBuffer = pFlayerClass.CreateFeatureBuffer();

// 以下这两句 写到循环外边            

int fieldId = pFlayerClass.FindField("ID");            

IFeature f = featureCursor.NextFeature();            

int speedId = pFlayerClass.FindField("SPEEDCLASS");            

for (int i = 0; i < cnt; i++)            

{

         string roadID = pFlayerClass.GetFeature(i).get_Value(fieldId).ToString();                

         int cl = GetSpeedClass(roadID);                

         //int cl = 2;                

         f.set_Value(speedId,cl);

   // 以下的代码是写入缓存

         //featureBuffer.Shape = pFeature.Shape;  

   //featureBuffer.set_Value(fieldId, roadID);

        //featureBuffer.set_Value(speedId, cl);               

        //IFeature pFeature = pFlayerClass.GetFeature(i);

    // 插入一个新的Feature

    // featureCursor.InsertFeature(featureBuffer);               

        featureCursor.UpdateFeature(f);

   // 删除一个矢量数据   

    f.Delete();             

        f = featureCursor.NextFeature();            

}            

featureCursor.Flush();

wse.StopEditOperation();          

wse.StopEditing(true);                        

#endregion

转载地址:http://jtunx.baihongyu.com/

你可能感兴趣的文章
Struts2(三)更改字符编码
查看>>
作为刚入职个把星期的小白,表示公司的项目就是复制粘贴,表示很迷茫,这样的话怎么成大牛哇?...
查看>>
WPF异步载入图片,附带载入中动画
查看>>
Android之NDK开发
查看>>
让kbmmw 4.8 支持ios 64
查看>>
CentOS下如何查找大文件
查看>>
android ImageView scaleType属性
查看>>
javascript中日期格式与时间戳之间的转化
查看>>
Sql Server系列:查询分页语句
查看>>
JavaScript. The core.
查看>>
VoltDB公布4.0版本号,大步提高内存实时分析速度,进军操作数据库市场
查看>>
Visual Studio跨平台开发实战(1) - Hello Xamarin!
查看>>
JavaScript 语言基础知识点总结(思维导图)
查看>>
The connection to adb is down, and a severe error has occured.问题解决方法小结
查看>>
cppunit使用详解
查看>>
SVN的Hooks功能--强制添加注释
查看>>
gdbserver 移植与多线程调试
查看>>
python判断文件和文件夹是否存在、创建文件夹
查看>>
AngularJs 表单提交按钮状态
查看>>
数据绑定(八)使用Binding的RelativeSource
查看>>