【225】ArcEngine 实现要素添加 & 删除
参考:ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新
删除要素
//添加图层,显示在最上面
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 对象
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();
}
显示地图经纬度坐标
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;
}
【225】ArcEngine 实现要素添加 & 删除的更多相关文章
- ArcEngine 创建要素,删除要素,生成网格,渲染图层(VB)
示例代码:https://github.com/yu969890202/ArcEngine/tree/master/WinFrom_ArcEngine_PointDistribution博客后面有两张 ...
- ArcEngine查询、添加、删除要素的方法
原文 ArcEngine查询.添加.删除要素的方法 1.查找数据 1).利用FeaturCursor进行空间查询 //空间查询 ISpatialFilter spatialFilter = new S ...
- WPF下的Richtextbox中实现表格合并,添加删除行列等功能
.Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...
- 编辑 Ext 表格(一)——— 动态添加删除行列
一.动态增删行 在 ext 表格中,动态添加行主要和表格绑定的 store 有关, 通过对 store 数据集进行添加或删除,就能实现表格行的动态添加删除. (1) 动态添加表格的行 gridS ...
- Angular-表单动态添加删除
angular本身不允许去操作DOM,在angular的角度来说,所有操作都以数据为核心,剩下的事情由angular来完成.所以说,想清楚问题的根源,解决起来也不是那么困难. 前提 那么,要做的这个添 ...
- 用Javascript动态添加删除HTML元素实例 (转载)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [CentOS]添加删除用户
摘要 在安装CentOS的时候,我们只设置了root,类似windows的超级管理员.当然我们在工作的时候,为了安全考虑,不可能对外开发root,一方面是从安全的角度,另一方面也是方便管理. 添加删除 ...
- iOS仿网易新闻栏目拖动重排添加删除效果
仿网易新闻栏目选择页面的基本效果,今天抽了点时间教大家如何实现UICollectionView拖动的效果! 其实实现起来并不复杂,这里只是基本的功能,没有实现细节上的修改,连UI都是丑丑的样子,随手画 ...
- 百度地图API示例之添加/删除工具条、比例尺控件
代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
随机推荐
- solaris用户与文件权限管理
此文章已于 20:45:28 2015/3/22 重新发布到 zhuxuekui3 solaris用户与文件权限管理1 类别 「网站分类」Oracle 一.用户与用户组管理 三种用户:超级用户. ...
- Web框架Django(一)
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- hdu 1081 & poj 1050 To The Max(最大和的子矩阵)
转载请注明出处:http://blog.csdn.net/u012860063 Description Given a two-dimensional array of positive and ne ...
- 如何清除本地DNS缓存 windows
在您的网站迁移服务器时需要对域名所指向的IP进行更改,这时候在本机访问网站时就需要清除本地的DNS缓存信息,那么怎样清除呢? 首先我们应该明白清除DNS缓存信息的原理:当计算机对域名访问时并不是每次访 ...
- 最新wap手机agent
名称 agent 铃声格式 和弦数 数据量 删除 LGE-CU8080 LGE-CU8080/1.0 UP.Browser/4.1.26l UP.Link/5.1.2.9 pmd2.0 40 ...
- MySQL 存储过程 (3)
以下介绍下像数据库循环插入数据操作 第一步:建立存储过程用到的信息表
- Struts2基本概念
一.Struts2体系结构 : 1.Web浏览器请求一个资源. 2.过滤器Dispatcher查找方法,确定适当的Action. 3.拦截器自动对请求应用通用功能,如验证和文件上传操作. 4.Acti ...
- 修改JDK环境变量,不生效的问题
一般是在/etc/profile下面配置JDK的环境变量 JAVA_HOME=/data/jdk1.7.0_72 JRE_HOME=/data/jdk1.7.0_72/jre PATH=$PATH:$ ...
- pexpect库学习之包装类详解
在pexpect库中,包装类的构造参数使用的命令或者要包装命令的提示符,还可以通过这个包装类来修改命令的提示符,那么所谓的包装类实际就是用于给用户交互相应的子命令,它的实例方法主要是“run_comm ...
- Factory Pattern
1.Factory模式两个最重要的功能 (1)定义创建对象的接口,封装了对象的创建. (2)使得具体化类的工作延迟到了子类中. 2.Factory模式结构示意图 3.实现 #ifndef _PRODU ...