Maplex是ArcGIS的高級智能標註引擎,利用Maplex的牽引線標註,將Symbol做爲label顯示,從而使點符號與文字標註綁定在一塊兒,經過調整閾值自動進行標註間避讓,計算出地圖上全部標註的最佳放置位置,達到點抽稀的目的。編輯器
主體思路:Maplex中對label有很好的顯示控制,一旦顯示symbol,則會出現symbol存在、label不存在,而且可能存在symbol互相疊置的現象;若是不顯示symbol,那麼就沒問題。是否能讓symbol做爲label一塊來顯示,經過maplex來控制?研究的結果是可行的,方法以下:工具
一、使用Maplex標註引擎,在label manager中選擇要顯示的點圖層。此處可點擊Text symbol中的symbol,在symbol selector中選擇bullet leader。大數據
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
二、選擇以後點擊Properties,進入編輯器。url
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
三、選擇Advanced text選項卡,點擊Text background的properties。spa
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
四、進入Text background屬性編輯器,在line callout中選中leader,點擊Symbol。插件
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
五、在symbol selector對話框中點擊properties。3d
六、在symbol property editor中的type選擇Marker line symbol。htm
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
七、在cartographic line 選項卡中color設置爲無色,template選項卡中偏移一個位置。blog
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
八、在Line properties選項卡中line decorations中選擇第二項,點擊Porperties
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
九、在line decoration editor中選中Flip All和Flip First,Rotation中選擇第二項,點擊symbol。
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
十、在symbol selector中選擇要表達該POI點的符號。(同標準的符號操做同樣)。用properties進行更多設置。
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
十一、逐步OK以後,在第4步操做的面板中設置牽引線的容限與間隔。容限值及間隔的設置,可參照「1三、補充說明」部分。
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
十二、Maplex抽稀先後效果以下:
點抽稀前
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
抽稀後
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
1三、補充說明
點抽稀時有以下幾個關鍵值
1)label offset:地圖上點到對應標註的距離。
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
2)牽引線的容差(Leader Tolerance)和間隔(Gap)
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
Leader tolerance是使牽引線出現時中心點到標註的最短距離(offset),若是offset < Leader tolerance,牽引線將消失。咱們要利用牽引線來進行點抽稀,因此應該設置Leader tolerance <= offset,可設置Leader tolerance = 0。
3)線段符號大小(即箭頭符號大小Symbol Size)
4)它們之間的長度關係以下圖:
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
爲了達到較好的標註效果,應設置:offset > Gap symbol size (通常可設置Gap=0,offset爲symbol size的1.5倍),同時須要注意勾選從要素的幾何中心開始計算偏移,以下圖,不然轉出MSD時會使標註離中心點的距離太遠。
![經常使用點抽稀方法之一——Maplex自動點抽稀 經常使用點抽稀方法之一——Maplex自動點抽稀](http://static.javashuo.com/static/loading.gif)
2、Subset點抽稀
Subset Features工具是ArcGIS地統計分析模塊的一個工具,該工具可將數據按照百分比進行抽稀,生成兩個結果數據集,一個是抽稀後保留的數據,另外一個是互補的那一部分數據。使用步驟以下。
一、在擴展模塊面板中,勾選地統計分析擴展模塊(Geostatistical Analyst),以下圖所示。
![經常使用點抽稀方法之二——Subset點抽稀 經常使用點抽稀方法之二——Subset點抽稀](http://static.javashuo.com/static/loading.gif)
二、從地統計工具箱(Geostatistical Analyst Tools)中或者Geostatistical Analyst工具條中,選擇打開Subset Features對話框,以下圖所示。
![經常使用點抽稀方法之二——Subset點抽稀 經常使用點抽稀方法之二——Subset點抽稀](http://static.javashuo.com/static/loading.gif)
![經常使用點抽稀方法之二——Subset點抽稀 經常使用點抽稀方法之二——Subset點抽稀](http://static.javashuo.com/static/loading.gif)
三、在Subset Features對話框中,輸入要抽稀的圖層與相應的參數,以下圖所示,其中,訓練要素類爲默認保留的子類,其大小可在「訓練要素子集的大小(可選)」進行選擇。默認按照百分比設置輸出大小,也能夠在「子集大小單位(可選)」中設置按照數量進行輸出。點擊肯定後,將在原始數據的基礎上按照設置的百分比或者輸出數量,生成保留的子集。
![經常使用點抽稀方法之二——Subset點抽稀 經常使用點抽稀方法之二——Subset點抽稀](http://static.javashuo.com/static/loading.gif)
4.SubSet工具使用先後結果對比
![經常使用點抽稀方法之二——Subset點抽稀 經常使用點抽稀方法之二——Subset點抽稀](http://static.javashuo.com/static/loading.gif)
抽稀前
![經常使用點抽稀方法之二——Subset點抽稀 經常使用點抽稀方法之二——Subset點抽稀](http://static.javashuo.com/static/loading.gif)
抽稀後(百分比爲30%)
3、SubPoints點抽稀
Sub Points工具是Esri中國自主開發的一個插件,該工具優先考慮點在空間分佈上的均勻合理性,並結合點數據中包含的「優先級」屬性進行篩選。經過獲取每一個點在必定範圍內擁有的相鄰點的數目信息,獲得地圖中點密度的分佈情況。抽稀時在若干相臨近的點中首先比較優先級,保留優先級高的;優先級相同時比較NAME字段,保留NAME長度短的;二者都相同時隨機選擇。
使用Sub Points進行點抽稀的數據,必須包含「優先級」和「name」兩個字段。其中優先級用來設置數據的重要性,在抽稀過程當中綜合考慮數據的優先級別。
1.1安裝與部署
一、首先將GPSubPoints.dll及「註冊插件」文件拷貝到本機目錄下,而後根據實際存放目錄編輯修改「註冊插件」中GPSubPoints.dll的存放路徑"D:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\GPSubPoints.dll",以下圖所示。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
修改保存後,雙擊「註冊插件」文件,將出現如下對話框。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
二、註冊完成後能夠在ArcCatalog中新建一個ArcToolbox,以下圖示。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
而後向其中添加工具,以下圖所示。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
在彈出的「添加工具」對話框中,選擇註冊好的Sub Points工具,選中後便可完成添加。以下圖所示。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
從下圖能夠看到,剛新建的工具箱中會出現剛添加的GP工具,雙擊或右鍵點擊打開便可使用了。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
也能夠將這個工具添加到ArcToolbox的列表中,方便之後直接調用。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
1.2Sub Points 使用
一、先利用Point Distance工具計算臨近要素,以下圖所示。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
Point Distance工具運行結果爲一張記錄某點在必定距離(好比100米)到範圍內相鄰點的距離的表,以下圖所示。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
臨近要素表
二、原數據中創建「優先級」(short)字段,並給「優先級」字段賦值;
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
三、運行Sub Points工具計算status的值,在Input PointDistance Table中輸入第一步生成的臨近要素表。Input Feature中,輸入待抽稀的要素圖層。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
運行該工具後,將生成status字段,並根據優先級以及臨近要素表給status賦值。以下圖所示。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
四、對於status > -99的值,表示要保留顯示的要素;對於status = -99的值,表示要刪除或者不在地圖上顯示的要素。可經過定義查詢操做來控制地圖顯示內容,以下圖所示。也能夠直接刪除不顯示的要素。
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
五、Sub Points使用先後效果圖
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
抽稀前
![經常使用點抽稀方法之三——SubPoints點抽稀 經常使用點抽稀方法之三——SubPoints點抽稀](http://static.javashuo.com/static/loading.gif)
抽稀後
4、總結
經過對三種方法的探究,得出以下結論:
Maplex自動點抽稀方法,方便快捷,只需對圖層標註樣式進行設置便可完成點抽稀。不足之處在於點符號顯示位置與實際位置存在誤差,以下圖所示(紅色符號爲點的真實位置,綠色符號爲抽稀後點的顯示位置)。
![經常使用點抽稀方法小結 經常使用點抽稀方法小結](http://static.javashuo.com/static/loading.gif)
若是POI單純用於底圖瀏覽,而且對數據精度沒有特別高的要求可採用這種方式。
使用Subset工具執行效率較高,但該方法保持了原圖的疏密程度,並不能使數據均勻分佈,原有數據密度高的地方抽稀後仍是較密,所以單純利用該工具難以實現底圖上的抽稀效果。
Sub Points點抽稀方法能達到比較好的圖面效果,而且能保持點位的精確,可是大數據量時(超過100000條)耗時較長。
所以,對於大數據量POI,爲了兼顧圖面效果、數據精確性以及執行效率,建議採用Subset與Sub Points相結合的方法。首先經過Subset方法進行空間上的抽稀以減小數據量,再利用Sub Points方法進行抽稀以達到較好的製圖效果。
總之,三種抽稀方法各有優缺點,在實際應用中可根據須要,選擇合適的抽稀方法。