詹必偉,高 穎,翟 翔,李 濤
(成都市規(guī)劃信息技術中心,四川成都 610041)
基于AutoCAD的DLG自動化質量檢查探究
詹必偉,高 穎,翟 翔,李 濤
(成都市規(guī)劃信息技術中心,四川成都 610041)
DLG產品為滿足日益廣泛的前端應用,其定位不能拘泥于傳統(tǒng)的制圖模式,需同時滿足制圖與建庫的需求。某城市1∶2000 DLG產品采用Auto-CAD格式存儲,并以擴展屬性的方式錄入社會經濟相關屬性。其圖幅編號由基本圖號和尾號兩部分組成。采用1∶5000圖廓西南角點的平面坐標千米數(shù)(用阿拉伯數(shù)字)作為基本圖號;在基本圖號基礎上,按從左至右、從上到下的順序,附加一個子號數(shù)字(用羅馬數(shù)字Ⅰ、Ⅱ、Ⅲ、Ⅳ)構成1∶2000的圖幅編號。
DLG生產標準主要以地理要素編碼為綱,規(guī)定地理要素的所在層名、幾何類型,以及相關參數(shù)(線型、字體樣式、色號)、屬性(屬性名稱、屬性值類型)等信息。質量檢查工具將DLG生產標準作為檢查的依據(jù),將相關信息納入可配置的后臺數(shù)據(jù)庫中(以下稱為標準庫)。該工具利用VB.NET開發(fā)環(huán)境,基于AutoCAD、Microsoft Access等軟件進行開發(fā),實現(xiàn)批量自動化檢查功能,并將檢查結果輸出為報表。
幅內檢查模塊可根據(jù)指定路徑自動搜索該路徑及其子文件夾下的待檢文件,以實現(xiàn)批量自動化無人值守的檢查。
1.圖層檢查
圖層檢查依據(jù)標準庫,檢查圖層名稱、默認色號等信息是否正確,是否存在多余或非標準的圖層。
2.要素屬性特性檢查
要素屬性特性檢查包含兩個方面:
1)屬性字段正確性和完整性檢查:依據(jù)標準庫,檢查各地理要素屬性表中字段名稱、字段類型、字段順序等信息是否正確,是否存在缺少字段和冗余字段的問題,以保證屬性表結構的正確性和完整性,為以后的數(shù)據(jù)格式轉換和數(shù)據(jù)建庫工作把關。
2)屬性值的正確性和有效性檢查:依據(jù)標準庫,檢查必填屬性字段是否均已錄入屬性值,屬性值類型是否正確,屬性值是否有效(如枚舉型的屬性值是否在枚舉范圍之內、等高線高程值是否符合自身規(guī)律)等。
3.要素幾何特性檢查
要素幾何特性檢查包含幾何類型檢查(包含線型、文字樣式、寬度比例、傾斜角度等)、微小碎線檢查、重復性檢查、線自相交檢查等。幾何類型檢查是依據(jù)標準庫,檢查要素對應的幾何類型是否正確,包含線型、文字樣式、寬度比例、傾斜角度、符號樣式等信息的檢查。微小碎線檢查是根據(jù)人為設定的閾值對異常短的線段進行檢查,以減少數(shù)據(jù)冗余。下面詳細介紹重復性檢查和線自相交檢查。
(1)重復性檢查
要素重復是指屬性完全相同的多個要素在空間形態(tài)上存在異常壓蓋的現(xiàn)象。重復性檢查是以要素為核心,生成一定的緩沖區(qū),在緩沖區(qū)內搜素重復要素。緩沖區(qū)內屬性完全相同的文字、點、塊等以定位點形式表達的要素,依據(jù)其定位點進行重復性判斷。緩沖區(qū)內屬性完全相同的線(面)要素的重復性判斷是將兩條不同折線分別按照其連接順序分解為多條兩點組成的線段,兩兩判斷分別來源于這兩條折線的線段是否重復,以此實現(xiàn)對兩條折線重復情況的判斷,這就將兩折線重復性判斷轉換為兩線段重復性判斷。
兩條線段重復有3種情形:完全重合、部分重復、包含關系,如圖1所示。線段A的兩個端點為P1(x1,y1)、P2(x2,y2),線段B的兩個端點為P3(x3,y3)、P4(x4,y4),其重復有3種情形:完全重合、部分重復、包含。兩線段重復判定步驟如下:
圖1 線段重復的3種情形
1)判斷A、B兩線段是否平行(斜率相同)。兩線段重復則其必定平行,但平行的兩線段不一定重復。平行是兩線段重復的必要條件,不平行(斜率不同)的兩線段一定不重復。兩線段平行算法如下:若y1=y(tǒng)2且y3=y(tǒng)3,則兩線段平行且平行于x軸;若y1≠y2且y3=y(tǒng)3,或y1=y(tǒng)2且y3≠y3,則兩線段不平行;若y1≠y2、y3≠y4且(x1-x2)/(y1-y2)=(x3-x4)/(y3-y4),則兩線段平行,否則兩線段不平行。
A、B兩線段不平行(斜率不同)則可認為一定不重復,只有平行的兩線段才進入步驟2)運算。
2)遍歷判斷A、B兩線段端點是否在對方的線段上。判斷點是否在線上,可以通過判斷點到線段兩個端點的距離之和是否等于線段的長度。若兩者相等,則點在線段上;否則,點不在線段上。如若則可判定P1在B線段上。
3)根據(jù)端點在對方線段上的情況判定兩線段是否重復:若B線段的端點只有一個在A線段上,A線段的端點也只有一個在B線段上,且兩點不重合,則兩線段部分重復;若B線段的端點兩個都在A線段上,或A線段的端點兩個都在B線段上,則A包含B或B包含A;若B線段的端點兩個都在A線段上,且A線段的端點兩個都在B線段上,則兩線完全重合。
以上3種情形可判定為兩線重復,否則判定為不重復。
(2)線自相交檢查
線自相交的定義:設有折線l={P1,P2,…,Pn},Pi(i=1,2,…,n)是折線上順次連接線段的端點。若除了相鄰線段間的連接端點P1,P2,…,Pn外,折線上的線段還存在其他交點,則定義此折線為自相交折線。
線自相交檢查算法:對于折線l上的線段,按照其連接順序分解為多條兩點組成的線段,兩兩判斷這些線段是否相交,并根據(jù)交點情況來判斷折線l是否自相交,將問題轉換為兩線段的相交問題。
折線n={P1,P2,P3,P4,P5,P6}由K1{P1,P2}、K2{P2,P3}、K3{P3,P4}、K4{P4,P5}、K5{P5,P6} 5條線段組成(如圖2所示),利用AutoCAD提供的IntersectWith函數(shù)兩兩線段進行判斷,若相交且交點不是兩線段的端點,則判定折線n自相交。
圖2 自相交線
圖幅接邊檢查主要針對線要素、面要素進行檢查,根據(jù)工程文件路徑及圖幅編號命名規(guī)則自動打開主圖幅文件及與其接邊的副圖幅文件,并按照一定的閾值生成東南西北4個緩沖區(qū)(如圖3所示)。檢查分為兩步:①對同一緩沖區(qū)內的主、副圖幅中編碼相同的實體(同類型地物)采用兩兩遍歷的方式,通過幾何匹配度進行定標,確定其是否為同一地理要素;②對其進行屬性檢查,檢查兩者屬性是否一致。接邊檢查的關鍵點是幾何匹配度定標,找到配對的地理要素,線要素和面要素采取不同的方式。
圖3 緩沖區(qū)示意圖
1.線要素幾何匹配算法
遍歷緩沖區(qū)內主圖幅的線要素實體(以下稱為主體要素),在緩沖區(qū)內遍歷搜索副圖幅中具有相同編碼的線要素(以下稱為副體要素),并遍歷計算主體要素節(jié)點與副體要素節(jié)點的歐式距離,最小距離即可代表主、副體要素的距離。與主體要素距離最小的副體要素作為疑似匹配實體,若該距離小于設定的閾值,則認為是幾何匹配的,即兩者表達的是同一地物要素。
2.面要素幾何匹配算法
面要素幾何匹配通過線要素的匹配實現(xiàn),遍歷緩沖區(qū)內主圖幅的面要素實體(以下稱為主體要素),在緩沖區(qū)內遍歷搜索副圖幅中具有相同編碼的面要素(以下稱為副體要素)。主體要素生成小閾值的緩沖區(qū),求其與接邊線的交線(主交線),并采用同樣的方法產生副體要素與接邊線的交線(副交線),同時算出主交線與副交線的重合部分(重合線)(如圖4所示)。通過主交線、副交線、重合線三者關系來判定幾何匹配度,將面要素幾何匹配的問題轉換為線要素來處理。若主交線與重合線長度之差或副交線與重合線長度之差在設定的閾值范圍內,則認為兩者長度相等。
圖4 主交線、副交線、重合線示意圖
面要素幾何匹配判定規(guī)則如下:
1)若主交線與副交線無重合,即主交線與副交線是相離關系,則判定兩者幾何不匹配,即兩者表達的不是同一地理要素。
2)若重合線長度等于主交線長度,且等于副交線長度,即主交線與副交線是等于關系(如圖5所示),則判定兩者幾何匹配,即兩者表達的是同一地理要素。
3)若重合線長度等于主交線或副交線長度,但小于另一交線的長度,且重合線長度大于設定的閾值,即主交線與副交線是包含關系(如圖5所示),則判定兩者幾何匹配,即兩者表達的是同一地理要素。
4)若重合線長度小于主交線和副交線長度,且重合線長度大于設定的閾值,即主交線與副交線是相交關系(如圖5所示),則判定兩者幾何匹配,即兩者表達的是同一地理要素;若重合線長度小于設定的閾值,則判定兩者幾何不匹配,即兩者表達的不是同一地理要素。
圖5 主交線、副交線關系示意圖
相比傳統(tǒng)的人工檢查方式,質量檢查工具在一定程度上提高了工作效率和檢查結果的準確性,為DLG成果入庫工作奠定了基礎,但也存在不足之處。
在相關算法的實現(xiàn)過程中,需要設定閾值進行判斷,不合理的閾值會導致檢查結果的異常,因此,閾值的設定需要進行反復試驗;同時,一些算法的實現(xiàn)過程中未充分考慮少數(shù)特殊情況,因此,檢查結果的準確率雖然較高,但不能保證百分之百正確,算法還需進一步優(yōu)化完善。
[1]黃海英,鐘生偉,胡景海.DLG質量檢查探究[J].地理空間信息,2009,7(6):135-137.
[2]周建康,冷泠,王瑞青.AutoCAD中判斷折線自相交的一種快速算法[J].城市勘測,2012(1):84-86.
[3]趙江洪.GIS中多幅圖自動接邊功能的算法實現(xiàn)[J].測繪通報,2005(9):32-34.
[4]張昭云,夏啟兵,許志海.基于線要素的圖幅自動接邊問題的探討[J].測繪學院學報,2001,18(9):77-80.
[5]張振利,孫建華.數(shù)字地圖自動接邊實現(xiàn)[J].北京測繪,2008(2):27-31.
[6]霍春玲,劉達.AutoCAD數(shù)據(jù)接邊檢查自動化的實現(xiàn)[J].測繪工程,2006,15(4):74-76.
[7]廖振環(huán),左志進,魏德照.DLG數(shù)據(jù)接邊檢查的設計與實現(xiàn)[J].地理空間信息.2009,7(4):60-62.
[8]戴相喜,周衛(wèi),高磊.DLG數(shù)據(jù)任意范圍接邊算法及實現(xiàn)[J].測繪通報,2008(7):32-35.
[9]華慧,童小華.數(shù)字化地圖的自動接邊及其精度[J].同濟大學學報,2000,28(1):33-36.
[10]劉慶元,周容.一種基于ArcGIS Engine的線狀圖幅接邊方法[J].計算機時代,2008(2):4-5.
Exploration of DLG Quality Check Based on AutoCAD
ZHAN Biwei,GAO Ying,ZHAI Xiang,LI Tao
介紹基于AutoCAD和Microsoft Access工具軟件在VB.NET環(huán)境中開發(fā)實現(xiàn)的DLG質量檢查工具。該工具實現(xiàn)了批量自動化檢查功能,包含幅內檢查和幅間檢查兩大模塊,對DLG進行實體的屬性和幾何拓撲等質量要素的檢查,并將檢查結果輸出為報表。
數(shù)字線劃圖;質量檢查;AutoCAD
P208
B
0494-0911(2014)10-0111-03
2014-06-30
詹必偉(1979―),男,湖北仙桃人,碩士,工程師,主要從事3S技術在城市規(guī)劃中的應用。
詹必偉,高穎,翟翔,等.基于AutoCAD的DLG自動化質量檢查探究[J].測繪通報,2014(10):111-113.
10.13474/j.cnki.11-2246. 2014.0344