转自原文章ARCGIS部分刷新

1, IActiveView.Refresh

全局刷新,即重绘地图中的所有内容,是效率最低的一种刷新方法。当数据量大时非常耗时。所以除非绝对必要,一般推荐使用IActiveView.PartialRefresh方法。当然如果是涉及全部显示范围的更新就需要使用Refresh,比如平移、缩放、全图等操作。

2, IActiveView.PartialRefresh

部分刷新,可以人为指定重绘地图中的部分内容,该方法效率高,推荐使用。下表说明了部分刷新的参数以及Map或PageLayout中刷新的内容:

PartialRefresh方法是部分刷新,效率方面比单纯的Refresh方法高很多。调用Refresh总是绘画毎一个对象。这是非常低效的。所以应该多使用PartialRefresh方法而少用Refresh。

刷新图层:
pMap.PartialRefresh(esriViewGeography, pLayer, null);

刷新所有图层:
pMap.PartialRefresh(esriViewGeography, null, null);

刷新所选择的对象:
pMap.PartialRefresh(esriViewGeoSelection, null, null);

刷新标注:
pMap.PartialRefresh(esriViewGraphics, null, null);

刷新图元
pLayout.PartialRefresh(esriViewGraphics, pElement, null);

刷新所有图元
pLayout.PartialRefresh(esriViewGraphics, null, null);

刷新所选择的图元
pLayout.PartialRefresh(esriViewGraphicSelection, null, null);

特殊的对于清除选择集,要在清除前后均进行一次刷新

   1: public void ClearSelectedMapFeatures(ESRI.ArcGIS.Carto.IActiveView activeView, ESRI.ArcGIS.Carto.IFeatureLayer featureLayer)
   2: {
   3:   if(activeView == null || featureLayer == null)
   4:   {
   5:     return;
   6:   }
   7:   ESRI.ArcGIS.Carto.IFeatureSelection featureSelection = featureLayer as ESRI.ArcGIS.Carto.IFeatureSelection; // Dynamic Cast
   8:   // Invalidate only the selection cache. Flag the original selection
   9:   activeView.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGeoSelection, null, null);
  10:   // Clear the selection
  11:   featureSelection.Clear();
  12:   // Flag the new selection
  13:   activeView.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGeoSelection, null, null);
  14: }

另外,对于如果对地图进行刷新、闪烁的时候,会出现先闪烁后刷新的问题,这是要添加相应的语句进行处理。

1: m_activeView.Refresh();//或者是某种部分刷新的语句
2: m_mapControl.FlashShape(...);

出现这个问题好像是由于图形显示和闪烁不在同一个线程中执行导致的。闪烁图形是一个很快的操作,而刷新背景却需要比较复杂的计算,所以先出来的语句 后执行结束。使用 m_activeView.UpdateWindow后就可以让代码在此等待。等到刷新确实搞定了。才开始执行FlashShape。使用下面的方法就可以解决这个问题:

1: m_activeView.Refresh().//获者是某种部分刷新语句
2: m_activeView.UpdateWindow();//这条语句是关键 。
3: m_mapControl.FlashShape(...);

ARCGIS刷新的故事的更多相关文章

  1. ArcGIS Engine 刷新问题

    link: http://www.cnblogs.com/Jingkunliu/archive/2013/01/10/2854710.html PartialRefresh方法是部分刷新,效率方面比单 ...

  2. ArcGIS engine中Display类库 (局部刷新)

    转自原文 ArcGIS engine中Display类库 (局部刷新) Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这个类库 ...

  3. arcgis python 刷新

    arcpy.RefreshActiveView() 刷新地图和布局窗口 arcpy.RefreshTOC() 刷新内容列表 arcpy.RefreshCatalog(r"F:\tknew10 ...

  4. ArcGIS Engine开发之属性查询

    属性查询即基于空间数据的属性数据的查询,通过用户提交SQL语言中的where语句定义的查询条件,对属性数据进行搜索,从而得到查询结果的操作. 相关的类与接口 与属性查询功能相关的类主要有QureyFi ...

  5. ArcGIS Engine开发之鹰眼视图

    鹰眼是GIS软件的必备功能之一.它是一个MapControl控件,主要用来表示数据视图中的地理范围在全图中的位置. 鹰眼一般具有的功能: 1)鹰眼视图与数据视图的地理范围保持同步. 2)数据视图的当前 ...

  6. ArcGIS Engine开发之地图基本操作(3)

    地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...

  7. ArcGIS 地图性能优化系列一

    经常有客户会咨询到如何提高地图的显示性能.为何ArcMap刷新地图那么缓慢.为何地图服务响应要等待10多秒? 诸如这些问题,虽然它们的表象都是相似的,但是往往在分析排查问题的时候,我们发现背后的原因是 ...

  8. ArcGIS 10.5新功能预览

    ArcGIS for Server产品线被重命名为ArcGIS Enterprise. 带来更多丰富的时空GIS功能. 分析地理大数据 捕捉和分析实时传感器数据 快速地理影像分析 ArcGIS Ent ...

  9. ArcGIS Server开发教程系列(8)ArcGIS API for Javascript-控件(小部件)

    1.     鹰眼 OverviewMap小部件用于在其关联的主地图内较清楚的当前鸟瞰图的范围.当主地图范围变化时,鹰眼图会自动在其空间内更新范围以保持和地图的当前范围保持一致,当鹰眼图空间的地图范围 ...

随机推荐

  1. js图表插件绘制各种类型图表

    官网:http://www.bootcss.com/p/chart.js/ 中文参考手册:http://www.bootcss.com/p/chart.js/docs/ 一.生成折线图 :test.h ...

  2. Json与JsonPath

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因为它良好的可读性与易于机器进行解析和生成等特性,在当前的数据整理和收集中得到了广泛的应用. JSON和XM ...

  3. wangEditor - 轻量级web富文本编辑器(可带图片上传)

    业务需求: 通过后台编辑文章和图片,上传到前端界面,展示新闻消息模块.这个时候,需要一款简洁的编辑器,百度编辑器是最常用的一种,但是功能太过于复杂,而wangEditor - 轻量级web富文本编辑器 ...

  4. 【Henu ACM Round #13 C】 Ebony and Ivory

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 先求出c-bx的所有可能 ->存在map里面 然后枚举y看看ay在不在map里面 在的话就有解. 这样复杂度是\(O(N*lo ...

  5. 什么是PV和UV?

    技术角度 1个PV是指从浏览器发出一个对网络server的Request,网络server接到Request之后.会開始把该Request相应的一个Page(Page就是一个网页)发送到client的 ...

  6. js 图片轮转

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. poj2243 &amp;&amp; hdu1372 Knight Moves(BFS)

    转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063?viewmode=contents 题目链接: POJ:http: ...

  8. Android_L(64bit) 模拟器配置及创建项目

    Android L可能就是Android 5.0.随之而来的还有Android Watch. Android TV. 而据说在10月中旬也就是15号Google的公布会上应该会推出Nexus 6和Ne ...

  9. jquery--延迟对象

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  10. 如何解决Linux下的软件包依赖问题

    650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/att ...