吳祖程,陳永就
(1.惠州市惠陽區(qū)國(guó)土資源測(cè)繪隊(duì),廣東 惠州 516211;2.廣東省國(guó)土資源測(cè)繪院,廣東 廣州 510500)
目前,AutoCAD在測(cè)繪行業(yè)得到普遍應(yīng)用,數(shù)字化測(cè)圖主要是以AutoCAD為平臺(tái)進(jìn)行二次開發(fā)的制圖軟件系統(tǒng),所以地圖縮編也大多在AutoCAD軟件中進(jìn)行。對(duì)于高程點(diǎn)的抽稀,南方CASS成圖系統(tǒng)已提供了較為合理及快速方法,而對(duì)于植被符號(hào)的抽稀,則是通過植被符號(hào)填充輔助層(骨架線ASSIST層)改變圖形比例尺后進(jìn)行重新填充,但當(dāng)骨架數(shù)據(jù)屬性丟失后,就無法進(jìn)行符號(hào)自動(dòng)填充;對(duì)于丟失骨架線的植被數(shù)據(jù),則需要重新圈定植被范圍線后才可以進(jìn)行填充處理,耗時(shí)費(fèi)力。通過分析,利用點(diǎn)抽稀的方法,可以實(shí)現(xiàn)植被符號(hào)的抽稀。
按距離值在圖面中進(jìn)行植被符號(hào)的抽稀方法,是在AutoCAD選定的范圍內(nèi),將所有的植被符號(hào)放入選擇集中,通過遍歷每一個(gè)植被符號(hào)并建立一定距離的搜索圓,對(duì)搜索圓內(nèi)的植被符號(hào)進(jìn)行圖面刪除并從選擇集中移除。使用圖面距離抽稀方法的特點(diǎn)是經(jīng)過抽稀的地形圖,任意植被間兩點(diǎn)的距離值不小于給定的間距值。
此方法是利用南方CASS成圖系統(tǒng)本身所提供的高程點(diǎn)抽稀功能,通過編制程序進(jìn)行數(shù)據(jù)交換,實(shí)現(xiàn)快速、自動(dòng)的植被抽稀。其方法是:首先將植被符號(hào)提取到新文件中,將植被根據(jù)代碼值寫入植被符號(hào)的標(biāo)高,滿足高程點(diǎn)抽稀的數(shù)據(jù)要求,并自動(dòng)輸出數(shù)據(jù)文件;其次利用高程點(diǎn)過濾功能,指定一定的過濾值(即過濾間距),重新生成點(diǎn)位;最后將點(diǎn)的屬性(即標(biāo)高值)作為符號(hào)屬性重新繪制過濾后的植被符號(hào)。
為驗(yàn)證兩種抽稀方法的效果和效率,使用Visual Basic語言編制了程序,對(duì)同一植被數(shù)據(jù)文件進(jìn)行處理,通過效果及處理所耗時(shí)間對(duì)比,驗(yàn)證兩種方法的優(yōu)劣。
首先將ZBTZ圖層中的植被符號(hào)全部提取到新建的文件中,作為過渡數(shù)據(jù)。程序的編制首先建立存儲(chǔ)數(shù)據(jù)需要的選擇集:
Dim SSetObj As IAcadSelectionSet
Set SSetObj = CreatNEWsset("SS1")
Call BuildFilter(Filtertype, Filterdata, 8, "ZBTZ", 0,"Insert")
SSetObj.Select acSelectionSetAll, , , Filtertype,Filterdata
其次通過遍歷選擇集中的每一個(gè)實(shí)體(即植被符號(hào)),根據(jù)一定的間距值,建立搜索圓,對(duì)間距范圍內(nèi)的植被符號(hào)進(jìn)行刪除,并從選擇集中移除,實(shí)現(xiàn)代碼如下(部分):
Curpnt = CLobj.InsertionPoint‘當(dāng)前植被符號(hào)插入點(diǎn)
For FenJiao = 0 To 330 Step 30 ‘建立搜索圓所需坐標(biāo)
Acut = FenJiao * 0.01745
SouSuo = AcadApp.ActiveDocument.Utility.PolarPoint(Curpnt, Acut, 30) ‘范圍30米Addpolypnt(cum* 2 + cum) = sousuo(0): Addpolypnt(cum *2 + 1 + cum)= SouSuo(1)
Addpolypnt(cum *2 + 2 + cum) = 0
Cum = Cum + 1
Next
Set BlockObj = CreatNEWsset("SS2")
Call BuildFilter(Blofiltertype, Blofilterdata, 0, "insert",8, "ZBTZ")
BlockObj.SelectByPolygon acSelectionSetCrossing Polygon, addpolypnt, Blofiltertype, Blofilterdata
BlockObj.Erase ‘刪除搜索圓內(nèi)的植被符號(hào)
將需刪除的植被符號(hào)從選擇集中刪除后,循環(huán)次數(shù)會(huì)逐漸減少,實(shí)際遍歷次數(shù)會(huì)大大小于植被符號(hào)的個(gè)數(shù),進(jìn)而減小運(yùn)行時(shí)間。
同樣,將植被符號(hào)提取到新文件中,通過程序?qū)⒚恳活愋偷闹脖环?hào)根據(jù)屬性值(數(shù)字型)賦予到標(biāo)高值中,然后將數(shù)據(jù)輸出到用作過渡的數(shù)據(jù)文件中,首先在程序中定制各種符號(hào)的塊名和屬性:
Dim ZbfhStr(0 To 77) As String
ZbfhStr(0) = "2111001,gc120,稻田符號(hào)"
ZbfhStr(1) = "2114001,gc123,菜地符號(hào)"
…
通過程序調(diào)用南方CASS高程點(diǎn)的展繪功能,根據(jù)一定的間距和比例尺,將抽稀后的點(diǎn)位展繪到圖上。展繪點(diǎn)的實(shí)際屬性為高程點(diǎn)位,但可以通過原先設(shè)定的標(biāo)高值(存放植被符號(hào)的屬性)來判斷植被符號(hào)的屬性。通過程序的進(jìn)一步處理,根據(jù)展繪的點(diǎn)位和標(biāo)高重新標(biāo)繪植被符號(hào),并利用定制的屬性表恢復(fù)植被的屬性,部分代碼如下:
(
For OPT = 0 To Pcp - 1
For CCL = 0 To 77
If UCase(Bname(OPT)) = UCase(UCase(FindStrForD H(ZbfhStr(CCL), 2))) Then
Sxok$ = FindStrForDH(ZbfhStr(CCL), 1)
If Len(Sxok$) = 7 Then
Sxok$ = Left(Sxok$, 6) & "-1"
End If
AcadApp.ActiveDocument.SendCommand"TKTOTK" & vbCr & "5" & vbCr & Bname(OPT) &vbCr & Sxok$ & vbCr
Exit For
End If
Next
…
為測(cè)試2種方法執(zhí)行數(shù)據(jù)處理的效果及效率,筆者選擇取了一塊約8 km2的地形圖數(shù)據(jù),其植被符號(hào)個(gè)數(shù)為118 397個(gè)(見圖1、圖2),按照20 m的抽稀間隔,通過選擇集方式進(jìn)行編程實(shí)現(xiàn),抽稀后的植被個(gè)數(shù)為13 332個(gè),抽稀后的植被個(gè)數(shù)比例為11.26%,抽稀時(shí)間為35 min42 s;利用點(diǎn)位過濾功能實(shí)現(xiàn)植被抽稀的方法經(jīng)抽稀后的植被個(gè)數(shù)為13 253個(gè)(按1︰ 2 000比例尺進(jìn)行抽稀,符號(hào)抽稀距離為20 m,抽稀后的效果見圖3),抽稀植被個(gè)數(shù)比例為11.19%,抽稀時(shí)間為6 min4 s。2種方法執(zhí)行后的數(shù)據(jù)結(jié)果相當(dāng),抽稀間隔均勻合理。
從計(jì)算機(jī)運(yùn)行效率來看,第一種方法占用太多的內(nèi)存資源,隨著運(yùn)行次數(shù)的增加,運(yùn)行速度逐漸減慢,數(shù)據(jù)處理所需的時(shí)間較長(zhǎng)。第二種方法的耗時(shí)約是第一種方法的1/6,效果與第一種方法相差無幾,效率明顯提升。這種方法不需考慮植被符號(hào)是否有屬性,根據(jù)植被的符號(hào)樣式進(jìn)行分類抽取,在實(shí)際應(yīng)用中更為合理。
以上2種方法都是根據(jù)一定的間距值對(duì)所有符號(hào)進(jìn)行整體分布式的抽稀,依據(jù)不同的比例尺,小面積的植被區(qū)域會(huì)出現(xiàn)完全被抽除的情況,即沒有了植被符號(hào)。雖然滿足地形圖對(duì)植被間距的要求,但在圖面的合理性方面仍存在著不足,對(duì)于相鄰植被間的符號(hào)保留問題,值得進(jìn)一步探討。
圖式[S].
[2]張正祿.工程測(cè)量學(xué)[M].武漢:武漢大學(xué)出版社,2002
[3]葉海青.土木工程測(cè)量[M].上海:同濟(jì)大學(xué)出版社,2006
[4]求是科技.Visual Basic6.0程序設(shè)計(jì)與開發(fā)技術(shù)大全[M].北京:人民郵電出版社,2004
[5]李長(zhǎng)勛.AutoCAD VBA程序開發(fā)技術(shù)[M].北京:國(guó)防工業(yè)出版社,2004
[6]AutoCAD Asia Pte Ltd.Autodesk地理信息系統(tǒng)解決方案[M].北京:電子工業(yè)出版社,2011
[7]GB/T149112-2005.l︰500、l︰1 000、1︰2 000外業(yè)數(shù)字測(cè)圖技術(shù)規(guī)程[S].