ArcEngine中shp中先加入要素然后删除一部分要素后,放大图形后不显示的问题解决方法...
ArcEngine中shp中先加入要素然后删除一部分要素后,放大图形后不显示的问题解决方法
(一)问题描述如下:
shp中先加入要素然后删除一部分要素后,图形为什么显示不正常了
//------------------
我遇到这个问题,请问大家是怎么解决的?
我的操作是:
往shp文件加入要素,
然后,再删除一部分要素,
显示就不正常了:
现象如下所示:
"这种情况全图显示时能看到所有图形,放大到某个范围后,某些图形就看不到了",
其加入要素代码如下所示:
操作加入要素的代码如下所示: IFeatureCursor InsertCursor = null; InsertCursor = Polygonfc.Insert(true); IGeometry newgeo = null; ComUnionOperator cuOp = new ComUnionOperator(); newgeo = cuOp.Union(FeatList.ToArray()); // if (newgeo != null) { (newgeo as ITopologicalOperator).Simplify(); newgeo.SpatialReference = sr; //创建一个新图斑 IFeatureBuffer featBuf = Polygonfc.CreateFeatureBuffer(); featBuf.Shape = newgeo; //设置几何对象 zhfeat = new ZHFeaturePolygon(p_feat); zhfeat.CopyField(ref featBuf); //设置属性值 ZhFeatureBuffer zhfeatBuf = new ZhFeatureBuffer(featBuf); zhfeatBuf.setFieldValue("xp_bh", ""); //设为空以防被删除 //插入新图斑到空间数据库中 InsertCursor.InsertFeature(featBuf); //记录要删除的原地物 del_xp_bh_List.Add(xp_bh_str); del_xp_bh_List.Add(xp_bh_s_str); // } //保存到空间库中 if (InsertCursor != null) { InsertCursor.Flush(); TokayWorkspace.ComRelease(InsertCursor); InsertCursor = null; }
操作删除要素的代码如下所示: #region//删除碎小地物操作 string t_del_wc = ""; for (int i = 0; i < del_xp_bh_List.Count; i++) { if (t_del_wc.Trim() == "") { t_del_wc = "'" + del_xp_bh_List[i] + "'"; } else { t_del_wc += ",'" + del_xp_bh_List[i] + "'"; } } if (t_del_wc.Trim() != "") //??? { IQueryFilter t_del_qf = new QueryFilterClass(); t_del_qf.WhereClause = "xp_bh in(" + t_del_wc + ")"; IFeatureCursor del_featcur = Polygonfc.Update(t_del_qf, false); IFeature del_feat = del_featcur.NextFeature(); while (del_feat != null) { del_featcur.DeleteFeature(); del_feat = del_featcur.NextFeature(); } del_featcur.Flush(); TokayWorkspace.ComRelease(del_featcur); del_featcur = null; // //TokayWorkspace.DeleteFeatures(Polygonfc, t_del_qf); } #endregion
经测试,加入要素没有问题,不删除操作,显示是正常的, 问题出在当执行删除操作时,显示就不正常了, 但另存为shp或其他格式的数据显示就正常; |
搜索网上的解决办法的url地址: http://hi.baidu.com/supu_beauty/ ... 98ff54242df26f.html http://www.cnblogs.com/sxw_cug/archive/2010/08/27/1810345.html ARCMAP中数据放大不显示问题 2010-07-19 21:08 最近发现在ARCMAP中矢量数据放大不显示问题,暴露问题状况为:全屏状态下数据正常显示,放大后反而数据不显示了,但是可以选择的到。一般用如下三种方法解决问题: 1、用ArcToolbox中的Datamanagement工具下的Features中的Repair Geometry修复数据。 2、修改文件名,尽量用英文,同时修改路径,尽量使其短,而且尽量使用英文。 3、如果上面两种方法无效的情况下,在ARCMAP中打开数据,然后Editor菜单下Start Editing,然后再Stop Editing,这样放大就可显示,至于原因正在查找中,原理也不是太明白,待以后更新补充。 |
如果是自定义编写的应用软件的话,需要重启应用软件,再开始编辑然后停止编辑,显示就可以了!
执行完先加入要素,然后删除一部分要素后
再执行下面的代码:显示问题依然存在!
//开始编辑然后再停止编辑
IWorkspace ws = (this.Polygonfc as IDataset).Workspace;
IWorkspaceEdit wsEdit = ws as IWorkspaceEdit;
if (wsEdit.IsBeingEdited() == true)
{
wsEdit.StopEditing(true);
}
wsEdit.StartEditing(false);
wsEdit.StopEditing(true);
//
需要重启应用软件,再开始编辑然后停止编辑,显示就可以了!
各位兄弟姐妹们,这个问题已经解决了。
解决方法如下代码所示:
问题是删除要素的时候出现的放大显示现象,
我对删除要素的代码作如下形式的修改,这个现象就没有了:
#region//删除碎小地物操作
string t_del_wc = "";
for (int i = 0; i < del_xp_bh_List.Count; i++)
{
if (t_del_wc.Trim() == "")
{
t_del_wc = "'" + del_xp_bh_List[i] + "'";
}
else
{
t_del_wc += ",'" + del_xp_bh_List[i] + "'";
}
}
if (t_del_wc.Trim() != "")
{
//开始编辑然后再停止编辑以处理放大不能显示的问题
IWorkspace ws = (this.Polygonfc as IDataset).Workspace;
IWorkspaceEdit wsEdit = ws as IWorkspaceEdit;
if (wsEdit.IsBeingEdited() == true)
{
wsEdit.StopEditing(true);
}
wsEdit.StartEditing(false);
wsEdit.StartEditOperation();
//----
IQueryFilter t_del_qf = new QueryFilterClass();
t_del_qf.WhereClause = "xp_bh in(" + t_del_wc + ")";
IFeatureCursor del_featcur = Polygonfc.Update(t_del_qf, false);
IFeature del_feat = del_featcur.NextFeature();
while (del_feat != null)
{
del_featcur.DeleteFeature();
del_feat = del_featcur.NextFeature();
}
del_featcur.Flush();
TokayWorkspace.ComRelease(del_featcur);
del_featcur = null;
//----
wsEdit.StopEditOperation();
wsEdit.StopEditing(true);
//TokayWorkspace.DeleteFeatures(Polygonfc, t_del_qf);
}
#endregion
----the----end-----
vp:hsg
create date:2012-03-07 10:57
转载于:https://www.cnblogs.com/sqlite3/archive/2012/03/07/2566735.html
ArcEngine中shp中先加入要素然后删除一部分要素后,放大图形后不显示的问题解决方法...相关推荐
- asp.net中GridView多行表头导出Excel表头显示不全问题解决方法
本次需要导出的Excel表格格式如下: 项目 本周实际 本月实际 本年实际 刷卡额 佣金收入 刷卡额 佣金收入 刷卡额 佣金收入 多表头具体的后台代码是在Row_Created事件中创建的.先看创建代 ...
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
/// <summary>/// 创建多边形shp/// </summary>/// <param name="pPolygon"></p ...
- arcpy中拆分获取FeatureClass中各类型地物要素到单独的shp中,类似于splitShp的功能(地理国情监测)
arcpy中拆分获取FeatureClass中各类型地物要素到单独的shp中,类似于splitShp的功能:(地理国情监测) for str_Val in set(shp_JH_list): #循环该 ...
- wp文件转shp_完美实现从mapGIS文件转换成ArcGIS中shp格式文件
完美实现从 mapGIS 文件转换成 ArcGIS 中 shp 格式文件 最近经苦战实验,终于找到如何完美实现从 mapGIS 文件转换成 ArcGIS 中 shp 格式文件.步骤如下(各步骤中细节操 ...
- Python中ArcPy实现ArcGIS自动批量制图与地图要素批量设置
1 任务需求 首先,我们来明确一下本文所需实现的需求. 现有通过这篇博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/123 ...
- SAP删除成本要素组中的项目
删除成本要素组中的项目 1. 执行事务码:GS02 成本要素组里面的项目不能直接在集里面删除,执行GS02事务码后,输入集名称,显示不能更改: 2. 执行事务码:KAH2 输入成本要素组编号,回车. ...
- 谈谈数字化转型中数据治理框架及数据战略规划的关键要素
当前,数据作为新的生产要素提到了关键位置,众多组织认为数据是重要的战略资产.可是,如何发挥数据要素的生产力,数据资产又如何为企业创造价值,确有些无从下手.那么,这就是数据战略要解决的问题.企业怎么看待 ...
- 计算机算法常用术语中英对照(分为两部分 其中一部分表格形式 )
第一部分 Data Structures 基本数据结构 Dictionaries 字典 Priority Queues 堆 Graph Data Structures 图 Set Data Struc ...
- ajax的loading方法,Ajax加载中显示loading的方法
使用ajaxStart方法定义一个全局的"加载中..."提示$(function(){ $("#loading").ajaxStart(function(){ ...
最新文章
- LINUX应用与发展简介
- C++和C语言的关系
- 【排序】归并类排序—归并排序(逆序数问题)
- HDU 2570 迷瘴
- OpenCV:OpenCV目标检测Hog+SWindow源代码分析
- html 保存文件指定路径,78.上传文件及在服务器保存文件到任意路径
- 金士顿 8G u盘 红色 量产记录
- zookeeper 安装和使用
- gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_ARP协议在同网段及跨网段下的工作原理...
- 几个重要的Linux系统内核文件介绍
- 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能
- 5G概念被热炒,运营商吃相不要太难看
- 【转载+整理】EJB(三) EJB分层架构
- C#毕业设计——基于C#+ASP.NET+SQL Server的酒店入住信息管理系统设计与实现(毕业论文+程序源码)——酒店入住信息管理系统
- 经典逻辑推理题(答案)
- LAMP源码环境搭建
- 极智AI | Attention 中 torch.chunk 的 TensorRT 实现
- Node Sass找不到您当前环境的绑定
- Java爬取中国天气网实况天气数据
- 让数据中台“飞“起来— Quick BI性能优化解决方案及实践