黃雪蓮,凌海峰,楊傳勇
(1.佛山市城市規(guī)劃勘測(cè)設(shè)計(jì)研究院,廣東佛山 528000;2.武大吉奧信息技術(shù)有限公司,湖北武漢 430223)
ArcGIS Engine的Maplex擴(kuò)展模塊為廣大的Arc-GIS二次開發(fā)者提供了高級(jí)的標(biāo)注布局和沖突檢測(cè)的方法,實(shí)現(xiàn)了對(duì)復(fù)雜數(shù)據(jù)自動(dòng)注記,特別是線狀數(shù)據(jù)復(fù)雜注記的功能。
管線數(shù)據(jù)制圖中對(duì)管線注記內(nèi)容、注記樣式和注記位置擺放有較高的要求,如果采用人工的方式生成注記內(nèi)容,對(duì)于一個(gè)城市的地下管線數(shù)據(jù)制圖工作而言,將是一件非常龐大的工作,采用傳統(tǒng)的ArcGIS標(biāo)準(zhǔn)注記功能,又很難達(dá)到制圖要求。
本文使用ArcGIS Engine Maplex擴(kuò)展模塊,對(duì)管線數(shù)據(jù)進(jìn)行動(dòng)態(tài)標(biāo)注,并生成用戶制圖需要的注記元素,注記內(nèi)容排列合理、美觀、可讀性強(qiáng),很好地滿足了管線數(shù)據(jù)自動(dòng)制圖的要求。
《佛山市地下管線探測(cè)及信息化技術(shù)規(guī)程(試行)》中規(guī)定地下管線圖中各類文字、數(shù)據(jù)注記按表1執(zhí)行。
管線注記樣式基本規(guī)定 表1
①地下管線圖中跨圖幅的文字應(yīng)分別注記在兩幅圖內(nèi),各種文字、數(shù)據(jù)注記不得壓蓋管線及其附屬設(shè)施的符號(hào)。
②各種地下管線點(diǎn)的圖上點(diǎn)號(hào)由管線子類代碼和數(shù)字組成。以1∶500基礎(chǔ)地形的標(biāo)準(zhǔn)圖幅為單元,宜按照先干管、后支管,由西到東、由北到南的原則從1開始順序編號(hào)。
根據(jù)《佛山市地下管線探測(cè)及信息化技術(shù)規(guī)程(試行)》的要求,管線數(shù)據(jù)制圖要求注記內(nèi)容如表2所示。
管線注記內(nèi)容說明 表2
①各種管線應(yīng)注明管類代碼、管徑(或斷面尺寸)。
②跨圖幅的文字應(yīng)分別注記在兩幅圖內(nèi)。
③如果管徑(斷面尺寸)無變化或跨圖幅后無變化時(shí),各種管線在其圖幅兩端按上述要求各標(biāo)注一處。
使用Maplex可以生成能保存在地圖文檔中的文字,也能產(chǎn)生可以保存在Geodatabase復(fù)雜的注記層中的注記。Maplex可以像傳統(tǒng)的label功能一樣設(shè)置label顯示的字段和樣式,但其功能更強(qiáng)大,可以定義規(guī)則來指定label的放置。
Maplex提供多種放置的方式,如橫放、筆直放置、沿著曲線放置等;可根據(jù)實(shí)際需要對(duì)label進(jìn)行偏移,線狀要素的放置方式如圖1所示。
圖1 線狀要素放置方式
Maplex提供了強(qiáng)大的沖突處理策略,可以通過其設(shè)置feature class的權(quán)重去確定label的層疊關(guān)系;設(shè)置相鄰label之間的最小間距;設(shè)置是否允許label重疊;刪除重復(fù)的label等。
Maplex的fitting strategy功能能夠解決“如何讓label適應(yīng)地圖”的問題,諸如label的堆放、在稠密的地方隱藏部分label以提高label的可讀性、在無法放置label的情況下縮減label字體的大小以適應(yīng)要素范圍、對(duì)label進(jìn)行簡(jiǎn)寫顯示等等。
通過label expression可以設(shè)置多個(gè)字段顯示label,如使用“A”和“B”字段進(jìn)行組合,中間以“—”間隔開等。
為了保證MapLex能在開發(fā)的應(yīng)用程序當(dāng)中使用,首先需要對(duì)maplex擴(kuò)展模塊進(jìn)行授權(quán),授權(quán)代碼如下:
利用Maplex顯示要素注記時(shí),要先將要素層加載到地圖控件中,再找出某層進(jìn)行設(shè)置。然后將開發(fā)程序中地圖控件(以下為MapAnno)的標(biāo)注引擎設(shè)置為MapLex制圖引擎。
上述代碼實(shí)現(xiàn)了將Map地圖控件從標(biāo)準(zhǔn)標(biāo)注引擎切換到Maplex地圖引擎,這樣即可使用Maplex的相關(guān)功能實(shí)現(xiàn)復(fù)雜的動(dòng)態(tài)標(biāo)注。
以下內(nèi)容中重點(diǎn)介紹如何利用Maplex實(shí)現(xiàn)重復(fù)標(biāo)注、距離控制和沿線標(biāo)注方式等接口。
使用IMaplexOffsetAlongLineProperties接口實(shí)現(xiàn)沿線標(biāo)注的樣式,例如偏移量、兩個(gè)標(biāo)注的最短間隔等,示例代碼如下:
使用 pMaplexOverposterLayerProperties2接口的NeverRemoveLabel屬性來控制每條管線和每個(gè)管點(diǎn)均被注記到,以滿足制圖的要求,實(shí)現(xiàn)示例代碼如下:
使用ArcGIS Engine Maplex實(shí)現(xiàn)動(dòng)態(tài)標(biāo)注后,使用ArcGIS Engine的標(biāo)注轉(zhuǎn)注記的方法和ArcGIS Engine的DataInteroperability擴(kuò)展模塊將管線數(shù)據(jù)和管線注記內(nèi)容轉(zhuǎn)換成CAD制圖成果,結(jié)果如圖2所示。
圖2 自動(dòng)成圖效果
本文介紹了基于ArcGIS Engine Maplex技術(shù)自動(dòng)生成管線標(biāo)注,達(dá)到管線制圖標(biāo)準(zhǔn)中對(duì)注記內(nèi)容的相關(guān)要求的方法,與傳統(tǒng)的制圖方式相比較,該方法具有明顯的先進(jìn)性,一是使用ArcGIS Engine Maplex技術(shù)可形成高質(zhì)量的動(dòng)態(tài)標(biāo)注;二是使用ArcGIS的標(biāo)注轉(zhuǎn)注記和DataInteroperability技術(shù)可將動(dòng)態(tài)標(biāo)注直接轉(zhuǎn)換為成圖所要求的CAD文件,提升了工程的執(zhí)行效率,為佛山市地下管線數(shù)據(jù)的勘測(cè)工作快速開展奠定了堅(jiān)實(shí)的基礎(chǔ)。
[1]Esri中國(北京)有限公司.ArcGIS 10產(chǎn)品白皮書.
[2]Esri.Maplex for ArcGIS Tutorial.
[3]http://www.3snews.net/html/16/22116-22002.html
[4]佛山市城鄉(xiāng)規(guī)劃局.佛山市地下管線探測(cè)及信息化技術(shù)規(guī)程(試行)[S].2010
[5]韓鵬,王泉,王鵬等.地理信息系統(tǒng)開發(fā)——ArcEngine方法[M].武漢:武漢大學(xué)出版社,2008