ARCGIS重新整理的故事

2021-09-22 07:06:44 字數 2378 閱讀 1772

**原文章arcgis部分重新整理

全域性重新整理,即重繪地圖中的所有內容,是效率最低的一種重新整理方法。當資料量大時非常耗時。所以除非絕對必要,一般推薦使用iactiveview.partialrefresh方法。當然如果是涉及全部顯示範圍的更新就需要使用refresh,比如平移、縮放、全圖等操作。

部分重新整理,可以人為指定重繪地圖中的部分內容,該方法效率高,推薦使用。下表說明了部分重新整理的引數以及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:
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研發背後的故事(下)

合格的esri程式設計師 計算機 地理學。arcgis 的研發工作有多個團隊參與。我們有大約20個團隊,例如geodatabase團隊 3d團隊 製圖團隊 網路系統團隊,等等,還有負責發布工作的團隊。每個團隊大約10到15人左右。團隊中包含程式設計師和產品工程師。程式設計師負責系統設計,軟體架構。產...

ArcGIS研發背後的故事(下)

合格的esri程式設計師 計算機 地理學。arcgis 的研發工作有多個團隊參與。我們有大約20個團隊,例如geodatabase團隊 3d團隊 製圖團隊 網路系統團隊,等等,還有負責發布工作的團隊。每個團隊大約10到15人左右。團隊中包含程式設計師和產品工程師。程式設計師負責系統設計,軟體架構。產...

關於arcgis重新整理匯出問題

工作中經常會遇到arcgis的匯出問題,有的專案因為製圖基礎差,經常會出現mxd shp等檔案混亂,找不到資料來源等問題,根本沒法用,後期修改也非常困難,想重新匯出一遍,發現調好的圖重新匯出後全部亂掉。so,想了一種解決方法,能提高一下重新整理圖件的效率。首先需要把資料來源另存為mdb檔案,方便管理...