轉自 http://blog.sina.com.cn/s/blog_ba3ace5f0101i8d7.html
一、Maplex自動點抽稀
Maplex是ArcGIS的高級智能標注引擎,利用Maplex的牽引線標注,將Symbol作為label顯示,從而使點符號與文字標注綁定在一起,通過調整閾值自動進行標注間避讓,計算出地圖上所有標注的最佳放置位置,達到點抽稀的目的。
主體思路:Maplex中對label有很好的顯示控制,一旦顯示symbol,則會出現symbol存在、label不存在,並且可能存在symbol互相疊置的現象;如果不顯示symbol,那么就沒問題。是否能讓symbol作為label一塊來顯示,通過maplex來控制?研究的結果是可行的,方法如下:
1、使用Maplex標注引擎,在label manager中選擇要顯示的點圖層。此處可點擊Text symbol中的symbol,在symbol selector中選擇bullet leader。


2、選擇之后點擊Properties,進入編輯器。

3、選擇Advanced text選項卡,點擊Text background的properties。

4、進入Text background屬性編輯器,在line callout中選中leader,點擊Symbol。

5、在symbol selector對話框中點擊properties。
6、在symbol property editor中的type選擇Marker line symbol。

7、在cartographic line 選項卡中color設置為無色,template選項卡中偏移一個位置。

8、在Line properties選項卡中line decorations中選擇第二項,點擊Porperties

9、在line decoration editor中選中Flip All和Flip First,Rotation中選擇第二項,點擊symbol。

10、在symbol selector中選擇要表達該POI點的符號。(同標准的符號操作一樣)。用properties進行更多設置。

11、逐步OK之后,在第4步操作的面板中設置牽引線的容限與間隔。容限值及間隔的設置,可參照“13、補充說明”部分。

12、Maplex抽稀前后效果如下:
點抽稀前

抽稀后

13、補充說明
點抽稀時有如下幾個關鍵值
1)label offset:地圖上點到對應標注的距離。

2)牽引線的容差(Leader Tolerance)和間隔(Gap)

Leader tolerance是使牽引線出現時中心點到標注的最短距離(offset),如果offset < Leader tolerance,牽引線將消失。我們要利用牽引線來進行點抽稀,所以應該設置Leader tolerance <= offset,可設置Leader tolerance = 0。
3)線段符號大小(即箭頭符號大小Symbol Size)
4)它們之間的長度關系如下圖:

為了達到較好的標注效果,應設置:offset > Gap symbol size (一般可設置Gap=0,offset為symbol size的1.5倍),同時需要注意勾選從要素的幾何中心開始計算偏移,如下圖,否則轉出MSD時會使標注離中心點的距離太遠。

二、Subset點抽稀
Subset Features工具是ArcGIS地統計分析模塊的一個工具,該工具可將數據按照百分比進行抽稀,生成兩個結果數據集,一個是抽稀后保留的數據,另一個是互補的那一部分數據。使用步驟如下。
1、在擴展模塊面板中,勾選地統計分析擴展模塊(Geostatistical Analyst),如下圖所示。

2、從地統計工具箱(Geostatistical Analyst Tools)中或者Geostatistical Analyst工具條中,選擇打開Subset Features對話框,如下圖所示。


3、在Subset Features對話框中,輸入要抽稀的圖層與相應的參數,如下圖所示,其中,訓練要素類為默認保留的子類,其大小可在“訓練要素子集的大小(可選)”進行選擇。默認按照百分比設置輸出大小,也可以在“子集大小單位(可選)”中設置按照數量進行輸出。點擊確定后,將在原始數據的基礎上按照設置的百分比或者輸出數量,生成保留的子集。

4.SubSet工具使用前后結果對比

抽稀前

抽稀后(百分比為30%)
三、SubPoints點抽稀
Sub Points工具是Esri中國自主開發的一個插件,該工具優先考慮點在空間分布上的均勻合理性,並結合點數據中包含的“優先級”屬性進行篩選。通過獲取每個點在一定范圍內擁有的相鄰點的數目信息,得到地圖中點密度的分布狀況。抽稀時在若干相臨近的點中首先比較優先級,保留優先級高的;優先級相同時比較NAME字段,保留NAME長度短的;兩者都相同時隨機選擇。
使用Sub Points進行點抽稀的數據,必須包含“優先級”和“name”兩個字段。其中優先級用來設置數據的重要性,在抽稀過程中綜合考慮數據的優先級別。
1.1安裝與部署
1、首先將GPSubPoints.dll及“注冊插件”文件拷貝到本機目錄下,然后根據實際存放目錄編輯修改“注冊插件”中GPSubPoints.dll的存放路徑"D:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\GPSubPoints.dll",如下圖所示。

修改保存后,雙擊“注冊插件”文件,將出現以下對話框。

2、注冊完成后可以在ArcCatalog中新建一個ArcToolbox,如下圖示。

然后向其中添加工具,如下圖所示。

在彈出的“添加工具”對話框中,選擇注冊好的Sub Points工具,選中后即可完成添加。如下圖所示。

從下圖可以看到,剛新建的工具箱中會出現剛添加的GP工具,雙擊或右鍵點擊打開即可使用了。

也可以將這個工具添加到ArcToolbox的列表中,方便以后直接調用。

1.2Sub Points 使用
1、先利用Point Distance工具計算臨近要素,如下圖所示。

Point Distance工具運行結果為一張記錄某點在一定距離(比如100米)到范圍內相鄰點的距離的表,如下圖所示。

臨近要素表
2、原數據中建立“優先級”(short)字段,並給“優先級”字段賦值;

3、運行Sub Points工具計算status的值,在Input PointDistance Table中輸入第一步生成的臨近要素表。Input Feature中,輸入待抽稀的要素圖層。

運行該工具后,將生成status字段,並根據優先級以及臨近要素表給status賦值。如下圖所示。

4、對於status > -99的值,表示要保留顯示的要素;對於status = -99的值,表示要刪除或者不在地圖上顯示的要素。可通過定義查詢操作來控制地圖顯示內容,如下圖所示。也可以直接刪除不顯示的要素。

5、Sub Points使用前后效果圖

抽稀前

抽稀后
四、總結
通過對三種方法的探究,得出如下結論:
Maplex自動點抽稀方法,方便快捷,只需對圖層標注樣式進行設置即可完成點抽稀。不足之處在於點符號顯示位置與實際位置存在偏差,如下圖所示(紅色符號為點的真實位置,綠色符號為抽稀后點的顯示位置)。

如果POI單純用於底圖瀏覽,並且對數據精度沒有特別高的要求可采用這種方式。
使用Subset工具執行效率較高,但該方法保持了原圖的疏密程度,並不能使數據均勻分布,原有數據密度高的地方抽稀后還是較密,因此單純利用該工具難以實現底圖上的抽稀效果。
Sub Points點抽稀方法能達到比較好的圖面效果,並且能保持點位的精確,但是大數據量時(超過100000條)耗時較長。
因此,對於大數據量POI,為了兼顧圖面效果、數據精確性以及執行效率,建議采用Subset與Sub Points相結合的方法。首先通過Subset方法進行空間上的抽稀以減少數據量,再利用Sub Points方法進行抽稀以達到較好的制圖效果。
總之,三種抽稀方法各有優缺點,在實際應用中可根據需要,選擇合適的抽稀方法。