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中先加入要素然后删除一部分要素后,放大图形后不显示的问题解决方法...相关推荐

  1. asp.net中GridView多行表头导出Excel表头显示不全问题解决方法

    本次需要导出的Excel表格格式如下: 项目 本周实际 本月实际 本年实际 刷卡额 佣金收入 刷卡额 佣金收入 刷卡额 佣金收入 多表头具体的后台代码是在Row_Created事件中创建的.先看创建代 ...

  2. AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素

    /// <summary>/// 创建多边形shp/// </summary>/// <param name="pPolygon"></p ...

  3. arcpy中拆分获取FeatureClass中各类型地物要素到单独的shp中,类似于splitShp的功能(地理国情监测)

    arcpy中拆分获取FeatureClass中各类型地物要素到单独的shp中,类似于splitShp的功能:(地理国情监测) for str_Val in set(shp_JH_list): #循环该 ...

  4. wp文件转shp_完美实现从mapGIS文件转换成ArcGIS中shp格式文件

    完美实现从 mapGIS 文件转换成 ArcGIS 中 shp 格式文件 最近经苦战实验,终于找到如何完美实现从 mapGIS 文件转换成 ArcGIS 中 shp 格式文件.步骤如下(各步骤中细节操 ...

  5. Python中ArcPy实现ArcGIS自动批量制图与地图要素批量设置

    1 任务需求   首先,我们来明确一下本文所需实现的需求.   现有通过这篇博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/123 ...

  6. SAP删除成本要素组中的项目

    删除成本要素组中的项目 1. 执行事务码:GS02 成本要素组里面的项目不能直接在集里面删除,执行GS02事务码后,输入集名称,显示不能更改: 2. 执行事务码:KAH2 输入成本要素组编号,回车. ...

  7. 谈谈数字化转型中数据治理框架及数据战略规划的关键要素

    当前,数据作为新的生产要素提到了关键位置,众多组织认为数据是重要的战略资产.可是,如何发挥数据要素的生产力,数据资产又如何为企业创造价值,确有些无从下手.那么,这就是数据战略要解决的问题.企业怎么看待 ...

  8. 计算机算法常用术语中英对照(分为两部分 其中一部分表格形式 )

    第一部分 Data Structures 基本数据结构 Dictionaries 字典 Priority Queues 堆 Graph Data Structures 图 Set Data Struc ...

  9. ajax的loading方法,Ajax加载中显示loading的方法

    使用ajaxStart方法定义一个全局的"加载中..."提示$(function(){ $("#loading").ajaxStart(function(){ ...

最新文章

  1. LINUX应用与发展简介
  2. C++和C语言的关系
  3. 【排序】归并类排序—归并排序(逆序数问题)
  4. HDU 2570 迷瘴
  5. OpenCV:OpenCV目标检测Hog+SWindow源代码分析
  6. html 保存文件指定路径,78.上传文件及在服务器保存文件到任意路径
  7. 金士顿 8G u盘 红色 量产记录
  8. zookeeper 安装和使用
  9. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_ARP协议在同网段及跨网段下的工作原理...
  10. 几个重要的Linux系统内核文件介绍
  11. 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能
  12. 5G概念被热炒,运营商吃相不要太难看
  13. 【转载+整理】EJB(三) EJB分层架构
  14. C#毕业设计——基于C#+ASP.NET+SQL Server的酒店入住信息管理系统设计与实现(毕业论文+程序源码)——酒店入住信息管理系统
  15. 经典逻辑推理题(答案)
  16. LAMP源码环境搭建
  17. 极智AI | Attention 中 torch.chunk 的 TensorRT 实现
  18. Node Sass找不到您当前环境的绑定
  19. Java爬取中国天气网实况天气数据
  20. 让数据中台“飞“起来— Quick BI性能优化解决方案及实践

热门文章

  1. 有些生意很偏门,也有一定门槛,但是效益非常好
  2. 实体和电商哪个更能赚到?
  3. 创业失败感悟第十四天
  4. SQL Server中的文件流
  5. sql server 并发_并发问题– SQL Server中的理论和实验
  6. sql2018 ssas_如何使用SQL Server Analysis Services(SSAS)从头开始构建多维数据集
  7. 如何杀死远程服务器到本机的tcp连接
  8. 【[Violet]樱花】
  9. 操作系统笔记(三)进程管理之管理
  10. PHP面向对象构造函数,析构函数