【225】ArcEngine 实现要素添加 & 删除
参考:ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新
删除要素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //添加图层,显示在最上面 axMapControl1.AddShapeFile( @"D:\01-业务工作\08-综合业务平台\综合业务平台数据\船载" , "cjsj.shp" ); //删除 shapefile 中的要素 //获取第一个图层 ILayer pLayer = axMapControl1.get_Layer(0); //以矢量图层的形式获取 IFeatureLayer pFLayer = pLayer as IFeatureLayer; //获取要素集 IFeatureClass pFC = pFLayer.FeatureClass; //查询全部要素 IFeatureCursor pFCursor = pFC.Search( null , false ); IFeature pfeature = pFCursor.NextFeature(); //遍历所有要素,并删除 while (pfeature != null ) { pfeature.Delete(); pfeature = pFCursor.NextFeature(); } |
添加要素,dtzh 为 DataTable 对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | for ( int i = 0; i < dtzh.Rows.Count; i++) { //定义一个点,并加入经纬度 IPoint pPoint = new PointClass(); double lon = Double.Parse(dtzh.Rows[i][ "经度" ].ToString()); double lat = Double.Parse(dtzh.Rows[i][ "纬度" ].ToString()); pPoint.PutCoords(lon, lat); //将点添加到要素集中,并存储 IFeature pFeature = pFC.CreateFeature(); pFeature.Shape = pPoint; pFeature.Store(); //获取索引值 int i_id = pFC.FindField( "Id" ); int i_time = pFC.FindField( "Time" ); int i_cjsj = pFC.FindField( "采集时间" ); int i_lon = pFC.FindField( "经度" ); int i_lat = pFC.FindField( "纬度" ); int i_fo = pFC.FindField( "Fo" ); int i_fm = pFC.FindField( "Fm" ); int i_fv = pFC.FindField( "Fv" ); int i_bv = pFC.FindField( "BV" ); int i_yield = pFC.FindField( "Yield" ); //为要素添加属性值 pFeature.set_Value(i_id, i); pFeature.set_Value(i_time, dtzh.Rows[i][ "Time" ].ToString()); pFeature.set_Value(i_cjsj, dtzh.Rows[i][ "采集时间" ].ToString()); pFeature.set_Value(i_lon, Double.Parse(dtzh.Rows[i][ "经度" ].ToString())); pFeature.set_Value(i_lat, Double.Parse(dtzh.Rows[i][ "纬度" ].ToString())); pFeature.set_Value(i_fo, Int32.Parse(dtzh.Rows[i][ "Fo" ].ToString())); pFeature.set_Value(i_fm, Int32.Parse(dtzh.Rows[i][ "Fm" ].ToString())); pFeature.set_Value(i_fv, Int32.Parse(dtzh.Rows[i][ "Fv" ].ToString())); pFeature.set_Value(i_bv, Int32.Parse(dtzh.Rows[i][ "Blank Value" ].ToString())); pFeature.set_Value(i_yield, dtzh.Rows[i][ "Yield" ].ToString()); pFeature.Store(); } |
显示地图经纬度坐标
1 2 3 4 5 | private void axMapControl1_OnMouseMove( object sender, IMapControlEvents2_OnMouseMoveEvent e) { tssl_lonlat.Text = String.Format( "经纬度:东经{0:0.000}° 北纬{1:0.000}°" , e.mapX, e.mapY); tssl_lonlat.Visible = true ; } |
posted on 2016-08-30 10:23 McDelfino 阅读(2346) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)