1.功能简介
目前PIE SDK支持矢量数据的修改或删除,下面对矢量数据的投影转换功能进行介绍。
2.功能实现说明
2.1. 矢量数据的修改
2.2. 实现思路及原理说明
第一步 |
获取需要修改的矢量数据 |
第二步 |
根据条件进行设置要素的值进行修改或删除 |
2.3. 核心接口与方法
接口/类 |
方法/属性 |
说明 |
DataSource.DatasetFactory |
OpenFeatureDataset(string path) |
创建要素数据集 |
IFeatureDataset |
GetNextFeature() |
获取下一个要素 |
UpdateFeature() |
更新要素 |
|
DeleteFeature() |
删除要素 |
|
IFeatureClass |
DeleteFeature() |
删除要素 |
UpdateFeature() |
更新要素 |
|
IFeature |
SetValue() |
设置字段值 |
2.4. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/04数据操作/04矢量数据的修改 |
数据路径 |
自定义即可 |
视频路径 |
百度云盘地址下/PIE视频教程/04数据操作/04矢量数据的修改.avi |
示例代码 |
|
1 /// <summary> 2 /// 矢量数据集的修改 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_ModifyData_Click(object sender, EventArgs e) 7 { 8 //1获取操作数据文件路径 9 OpenFileDialog openFileDialog = new OpenFileDialog(); 10 openFileDialog.Filter = "VectorData File|*.shp"; 11 openFileDialog.Title = "需要修改的矢量数据"; 12 if (openFileDialog.ShowDialog() != DialogResult.OK) return; 13 IFeatureDataset featureDataset = DatasetFactory.OpenFeatureDataset(openFileDialog.FileName); 14 15 ////2矢量数据集的删除和修改 16 IFields fields = featureDataset.GetFields(); 17 int index = fields.GetFieldIndex("Name");//自己可以根据操作的数据字段进行设置 18 19 featureDataset.DeleteFeature(4);//删除FID为4的要素 20 IFeature feature = featureDataset.GetNextFeature(); 21 while (feature != null) 22 { 23 feature.SetValue(index, "B");//设置字段值,将所有要素的Name值设置为A; 24 featureDataset.UpdateFeature(feature);//数据更新 25 feature = featureDataset.GetNextFeature(); 26 } 27 mapControlMain.AddLayerFromFile(openFileDialog.FileName, 0); mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll); 28 } |
2.5. 示例截图
修改前:
修改后: