ArcGIS 中要素的查询与修改
转自nimeila的回答 求C# ArcGIS Engine修改选中要素的属性,单要素都行
RLAlterFrm RLalter = new RLAlterFrm(); RLalter.ShowDialog(); string AlterID = RLalter.textBox1.Text; string AlterRP = RLalter.textBox2.Text; string AlterC = RLalter.textBox3.Text; axMapControl1.ClearLayers(); axMapControl1.Refresh(); try { string strFileName = Application.StartupPath + @"\数据\Roadlamp.mxd"; //在数据视图中加载地图,供查询操作 if (axMapControl1.CheckMxFile(strFileName)) { axMapControl1.LoadMxFile(strFileName); } else { MessageBox.Show("错误的数据路径:" + strFileName); } } catch (Exception ex) { MessageBox.Show("Error01 in MainForm.cs" + ex.Message); } axMapControl1.Refresh(); string strQK = RLalter.getQueryKey();//获取查询值 //找到图层 IFeatureLayer pfeaturelayer = new FeatureLayer(); pfeaturelayer = axMapControl1.get_Layer(0) as IFeatureLayer; //找到要素 IQueryFilter pQueryFilter = new QueryFilter(); pQueryFilter.WhereClause = "[RL_ID] = '" + strQK + "'"; IFeatureCursor pFeatureCur = pfeaturelayer.Search(pQueryFilter, false); IFeature pFeature = null; pFeature = pFeatureCur.NextFeature(); if (null == pFeature) { MessageBox.Show("对不起!该元素不存在"); } else { IFields pFields = pFeature.Fields; IFeatureClass pFeatureClass = pfeaturelayer.FeatureClass; //修改属性值 int field1 = pFields.FindField("RL_ID"); int field2 = pFields.FindField("RL_RP"); int field3 = pFields.FindField("RL_C"); pFeature.set_Value(field1, AlterID); pFeature.set_Value(field2, AlterRP); pFeature.set_Value(field3, AlterC); pFeature.Store(); MessageBox.Show("修改成功!","提示"); } }
你们的评论、反馈,及对你们有所用,是我整理材料和博文写作的最大的鼓励和唯一动力。欢迎讨论和关注!
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。

浙公网安备 33010602011771号