黃雪蓮,凌海峰,楊傳勇
(1.佛山市城市規劃勘測設計研究院,廣東佛山 528000;2.武大吉奧信息技術有限公司,湖北武漢 430223)
ArcGIS Engine的Maplex擴展模塊為廣大的Arc-GIS二次開發者提供了高級的標注布局和沖突檢測的方法,實現了對復雜數據自動注記,特別是線狀數據復雜注記的功能。
管線數據制圖中對管線注記內容、注記樣式和注記位置擺放有較高的要求,如果采用人工的方式生成注記內容,對于一個城市的地下管線數據制圖工作而言,將是一件非常龐大的工作,采用傳統的ArcGIS標準注記功能,又很難達到制圖要求。
本文使用ArcGIS Engine Maplex擴展模塊,對管線數據進行動態標注,并生成用戶制圖需要的注記元素,注記內容排列合理、美觀、可讀性強,很好地滿足了管線數據自動制圖的要求。
《佛山市地下管線探測及信息化技術規程(試行)》中規定地下管線圖中各類文字、數據注記按表1執行。

管線注記樣式基本規定 表1
①地下管線圖中跨圖幅的文字應分別注記在兩幅圖內,各種文字、數據注記不得壓蓋管線及其附屬設施的符號。
②各種地下管線點的圖上點號由管線子類代碼和數字組成。以1∶500基礎地形的標準圖幅為單元,宜按照先干管、后支管,由西到東、由北到南的原則從1開始順序編號。
根據《佛山市地下管線探測及信息化技術規程(試行)》的要求,管線數據制圖要求注記內容如表2所示。

管線注記內容說明 表2
①各種管線應注明管類代碼、管徑(或斷面尺寸)。
②跨圖幅的文字應分別注記在兩幅圖內。
③如果管徑(斷面尺寸)無變化或跨圖幅后無變化時,各種管線在其圖幅兩端按上述要求各標注一處。
使用Maplex可以生成能保存在地圖文檔中的文字,也能產生可以保存在Geodatabase復雜的注記層中的注記。Maplex可以像傳統的label功能一樣設置label顯示的字段和樣式,但其功能更強大,可以定義規則來指定label的放置。
Maplex提供多種放置的方式,如橫放、筆直放置、沿著曲線放置等;可根據實際需要對label進行偏移,線狀要素的放置方式如圖1所示。

圖1 線狀要素放置方式
Maplex提供了強大的沖突處理策略,可以通過其設置feature class的權重去確定label的層疊關系;設置相鄰label之間的最小間距;設置是否允許label重疊;刪除重復的label等。
Maplex的fitting strategy功能能夠解決“如何讓label適應地圖”的問題,諸如label的堆放、在稠密的地方隱藏部分label以提高label的可讀性、在無法放置label的情況下縮減label字體的大小以適應要素范圍、對label進行簡寫顯示等等。
通過label expression可以設置多個字段顯示label,如使用“A”和“B”字段進行組合,中間以“—”間隔開等。
為了保證MapLex能在開發的應用程序當中使用,首先需要對maplex擴展模塊進行授權,授權代碼如下:

利用Maplex顯示要素注記時,要先將要素層加載到地圖控件中,再找出某層進行設置。然后將開發程序中地圖控件(以下為MapAnno)的標注引擎設置為MapLex制圖引擎。

上述代碼實現了將Map地圖控件從標準標注引擎切換到Maplex地圖引擎,這樣即可使用Maplex的相關功能實現復雜的動態標注。
以下內容中重點介紹如何利用Maplex實現重復標注、距離控制和沿線標注方式等接口。
使用IMaplexOffsetAlongLineProperties接口實現沿線標注的樣式,例如偏移量、兩個標注的最短間隔等,示例代碼如下:

使用 pMaplexOverposterLayerProperties2接口的NeverRemoveLabel屬性來控制每條管線和每個管點均被注記到,以滿足制圖的要求,實現示例代碼如下:

使用ArcGIS Engine Maplex實現動態標注后,使用ArcGIS Engine的標注轉注記的方法和ArcGIS Engine的DataInteroperability擴展模塊將管線數據和管線注記內容轉換成CAD制圖成果,結果如圖2所示。

圖2 自動成圖效果
本文介紹了基于ArcGIS Engine Maplex技術自動生成管線標注,達到管線制圖標準中對注記內容的相關要求的方法,與傳統的制圖方式相比較,該方法具有明顯的先進性,一是使用ArcGIS Engine Maplex技術可形成高質量的動態標注;二是使用ArcGIS的標注轉注記和DataInteroperability技術可將動態標注直接轉換為成圖所要求的CAD文件,提升了工程的執行效率,為佛山市地下管線數據的勘測工作快速開展奠定了堅實的基礎。
[1]Esri中國(北京)有限公司.ArcGIS 10產品白皮書.
[2]Esri.Maplex for ArcGIS Tutorial.
[3]http://www.3snews.net/html/16/22116-22002.html
[4]佛山市城鄉規劃局.佛山市地下管線探測及信息化技術規程(試行)[S].2010
[5]韓鵬,王泉,王鵬等.地理信息系統開發——ArcEngine方法[M].武漢:武漢大學出版社,2008