王 勇,羅 安,王慧慧,曹元暉,劉紀(jì)平,
1. 中國測繪科學(xué)研究院,北京 100036; 2. 武漢大學(xué)資源與環(huán)境科學(xué)學(xué)院,湖北 武漢 430079
建筑物多尺度可視化在智慧城市中非常重要[1]。隨著傾斜攝影測量等新技術(shù)的發(fā)展,建筑物數(shù)據(jù)來源呈現(xiàn)多樣化特征[2];在Web 2.0時代,VGI制圖、眾包更新等生產(chǎn)模式的應(yīng)用,也帶來復(fù)雜建筑物內(nèi)部多邊形拓?fù)浣Y(jié)構(gòu)不一致甚至沖突等問題。因此,在將建筑物空間數(shù)據(jù)廣泛應(yīng)用于位置導(dǎo)航、災(zāi)害管理和環(huán)境監(jiān)測等領(lǐng)域[3-5]的同時,有必要研究內(nèi)部拓?fù)浣Y(jié)構(gòu)不一致條件下的建筑物聚合方法,以更好地支持建筑物多尺度可視化。
已有的建筑物聚合方面的研究成果主要體現(xiàn)在鄰近關(guān)系識別、空間聚類、多邊形合并等方面。鄰近關(guān)系的探測與確定是建筑物多邊形合并的前提[6],目前用于鄰近關(guān)系探測的方法主要有Buffer探測方法[7-8]、Delaunay三角網(wǎng)法[9-14]、空間聚類法[15-18]等。文獻(xiàn)[19]提出利用Delaunay三角網(wǎng)對建筑物進(jìn)行聚類,形成鄰近區(qū)域塊,然后用于地圖綜合。文獻(xiàn)[20]提出ABTM算法,把Agent技術(shù)與Delaunay三角網(wǎng)相結(jié)合應(yīng)用于城市建筑物合并。由于實(shí)際的地圖綜合中,特殊情況較多,使用Delaunay三角網(wǎng)時,需要?dú)w納各種特殊情況并進(jìn)行區(qū)分處理,因此導(dǎo)致算法較為復(fù)雜低效[14]。
建筑物多邊形聚合常見方法主要有擴(kuò)張-消除法[21]、縫合算法[22]、引力方向投影法[23]及Delaunay三角網(wǎng)法[9-14]。擴(kuò)張-消除合并方法通常用緩沖區(qū)法探測鄰近關(guān)系,三角網(wǎng)合并方法利用三角網(wǎng)探測鄰近關(guān)系。需要加入建筑物多邊形相似性和方向性等考慮因素時,與聚類或機(jī)器學(xué)習(xí)相結(jié)合能獲得更好的效果,如最小生成樹(MST)法和BP神經(jīng)網(wǎng)絡(luò)法[24-25]。文獻(xiàn)[21]提出一種基于擴(kuò)張-消除原理進(jìn)行建筑物多邊形合并的方法,能消除建筑物間指定閾值的間隙,同時能消除建筑物多邊形的小凸包和小凹陷。文獻(xiàn)[22]通過對鄰近復(fù)雜多邊形之間添加縫合區(qū)實(shí)現(xiàn)對多邊形群組間縫隙的消除。文獻(xiàn)[23]提出了一種建筑物多邊形合并的引力方向投影法,該方法能合并兩相離建筑物間的間隙,建筑物間隙越接近長方形,其合并效果越好。文獻(xiàn)[14]提出了一種基于CDT進(jìn)行建筑物多邊形合并的分類過濾法,該方法借助三角網(wǎng)能定性、定量表達(dá)建筑物間鄰近關(guān)系的特點(diǎn),針對不同建筑物之間的縫隙進(jìn)行填充。文獻(xiàn)[13]提出了一種基于Delaunay三角網(wǎng)的面狀要素合并方法,通過三角網(wǎng)找到建筑物多邊形間三角網(wǎng)形成的“通道”,然后對通道出口處的三角形進(jìn)行處理來完成合并,填充建筑物間的縫隙。文獻(xiàn)[26]引入超像素的概念對建筑物進(jìn)行綜合,保留了建筑物正交特征并避免其自相交。
圖1顯示了一個復(fù)雜建筑物實(shí)體,包含多個拓?fù)浣Y(jié)構(gòu)不一致的建筑物多邊形,智慧城市系統(tǒng)中建筑物多尺度可視化要求快速準(zhǔn)確地獲取當(dāng)前比例尺下此類復(fù)雜建筑物實(shí)體的輪廓形狀,且聚合后的建筑物輪廓與原始建筑物輪廓盡可能保持一致。上述多邊形聚合方法在相離的建筑物多邊形聚合中都取得了較好的效果,但當(dāng)建筑物結(jié)構(gòu)復(fù)雜且多邊形之間的空間關(guān)系多樣時[27],其聚合算法就需要進(jìn)一步研究。因此,本文在加密建筑物多邊形邊線頂點(diǎn)的基礎(chǔ)上,提出一種基于近似最短鄰近線的復(fù)雜建筑物多邊形自動聚合方法。該方法的總體思路是:首先,基于幾何距離對建筑物多邊形進(jìn)行聚類,操作每個獨(dú)立類中的建筑物群多邊形;然后,加密建筑物邊線頂點(diǎn),以便快速搜索鄰近頂點(diǎn),形成表示鄰近關(guān)系的最短鄰近線,進(jìn)一步以相鄰的最短鄰近線所組成的最短鄰近線組確定建筑物多邊形間的聚合區(qū)域;最后,提取復(fù)雜建筑物總體邊界輪廓,完成復(fù)雜建筑物多邊形的聚合。
圖1 大型復(fù)雜建筑物的建筑物多邊形Fig.1 Polygons of a big and comprehensive building entity
在進(jìn)行建筑物多邊形聚合之前,首先需要確定待聚合的建筑物多邊形集合。這可以歸結(jié)為一個空間聚類問題,即將較大空間范圍的建筑物多邊形劃分為不同群組, 以群組為制圖單元進(jìn)行空間聚合操作。本文提出用遞歸搜索鄰近建筑物多邊形的方法來聚類和搜索需要聚合的建筑物群多邊形。假設(shè)點(diǎn)P位于建筑物多邊形A上,利用點(diǎn)P的網(wǎng)格索引找到建筑物多邊形A可能鄰近的建筑物多邊形B,計算點(diǎn)P到建筑物多邊形B的最短距離minD,若minD<ε(ε表示聚合距離閾值)則建筑物多邊形A與建筑物多邊形B具有鄰近關(guān)系,記為群組Group={A,B}。以此為基礎(chǔ),通過遞歸搜索鄰近建筑物多邊形,并不斷將其加入群組Group,直到無法找到所有鄰近多邊形為止。最終群組Group為待合并的建筑物群,空間聚類過程如圖2(a)所示,其過程的圖形表示如圖2(b)所示,圖形中實(shí)線為已經(jīng)搜索到的鄰近建筑物多邊形,虛線為未搜索到的建筑物多邊形,聚類結(jié)果為Group={A,B,C,D,E,F,G}。圖3是空間聚類后的某復(fù)雜綜合性建筑物示例,其中實(shí)線是單體建筑物的平面多邊形,虛線所包含的范圍是搜索出的大型綜合性建筑物實(shí)體多邊形。
圖2 遞歸搜索鄰近建筑物多邊形Fig.2 Recursively searching building polygons neighboring
圖3 搜索出的復(fù)雜綜合性建筑物實(shí)體Fig.3 The big and comprehensive building entities searched
頂點(diǎn)間最短鄰近線是指一個建筑物邊線上的某頂點(diǎn)A到另一個建筑物邊線上最近的頂點(diǎn)之間的連線,該連線有方向性,可以是單向的,也可以是雙向的。本文將“頂點(diǎn)間最短鄰近線”簡稱為“最短鄰近線”。
為了生成頂點(diǎn)間最短鄰近線,每個單一建筑物多邊形需要先按照坐標(biāo)點(diǎn)順序插入所有建筑物多邊形之間的交點(diǎn),并添加到相關(guān)的建筑物多邊形邊線坐標(biāo)串上,如圖4(a)、(b)、(c)所示;若兩條邊線存在重疊(包括部分重疊)則不計算交點(diǎn)。相交的交點(diǎn)可以通過關(guān)聯(lián)的直線段求得,如圖4(a)、(b)、(c)所示。然后,按照建筑物多邊形邊線的坐標(biāo)點(diǎn)順序,依據(jù)用戶定義的加密間距d,在每個建筑物多邊形邊線的每條直線段上插入加密點(diǎn)。理論上,加密點(diǎn)密度越大,建筑物輪廓垂直的可能性越大。為了盡量保證建筑物輪廓接近垂直,加密點(diǎn)間的最小距離規(guī)定為最小視覺可分辨距離(SVO)[28],文獻(xiàn)[29]建議地圖上該SVO的參數(shù)D為0.4 mm。綜合前后地圖比例尺相同的情況下,相應(yīng)地面距離F與比例尺分母S有關(guān),計算公式為F=S×D。建筑物多邊形邊線上每一條直線段的點(diǎn)加密方法是:按順序遍歷建筑物多邊形邊線上每一條直線段,用線性插值法在該直線段上加密點(diǎn)。設(shè)該直線段長度為L,當(dāng)L≤d時,則該直線段不加密點(diǎn)。加密點(diǎn)的效果如圖4所示,圖中有2個多邊形,邊線上的小黑點(diǎn)是原始頂點(diǎn)、交點(diǎn)和加密點(diǎn)。
圖4 加密點(diǎn)后的建筑物多邊形邊線Fig.4 The edges of the building polygons with the interpolated new vertexes
插入加密點(diǎn)后就可以建立網(wǎng)格索引,搜尋每一個點(diǎn)到另外一個建筑物頂點(diǎn)的最短鄰近線。在本文方法中,該最短鄰近線為一個近似對象,如圖4(d)所示,對于建筑物多邊形A上的點(diǎn)PA1,假設(shè)與之最鄰近的點(diǎn)為建筑物多邊形B上的點(diǎn)PB1,則最鄰近連線PA1PB1為多邊形A到B的最鄰近連線,記為A1→B1,A1表示位于建筑物多邊形A上的點(diǎn)的編號,B1表示位于建筑物多邊形B上的點(diǎn)的編號。同樣地,對于建筑物多邊形B上的點(diǎn)PB1,假設(shè)與之最鄰近的點(diǎn)為建筑物多邊形A上的點(diǎn)PA2,則最鄰近連線PB1PA2為多邊形B到A的最鄰近連線,記為B1→A2。
圖4(d)中的最短鄰近線分為兩類:①單向最短鄰近線,PA1PB1是A1→B1的單向最短鄰近線,圖中用虛線表示;②雙向最短鄰近線,PB1PA2既是B1→A2也是A2→B1的最短鄰近線,圖中用實(shí)線表示。聚合建筑物多邊形A和B可充分利用這一組最短鄰近線。由于建筑物多邊形之間的空間拓?fù)潢P(guān)系多樣化,只按照點(diǎn)與點(diǎn)之間的最短距離建立起來的最短鄰近線不能直接用于建筑物群的聚合。圖5中的虛線PAiPBj均為采用上述方法搜尋到的最短鄰近線,涉及3種特殊情況,本文算法中需要刪除這3種情況下的最短鄰近線。
(1) 最短鄰近線不能穿過建筑物多邊形。如圖5(a)所示,兩個點(diǎn)PAi和PBj之間的連線顯然無法表達(dá)建筑物多邊形邊線上點(diǎn)之間的最短鄰近關(guān)系,因?yàn)樵撨B線穿過了建筑物多邊形的邊,破壞了兩者之間的鄰近關(guān)系。
(2) 最短鄰近線不能只位于一個建筑物多邊形中,如圖5(b)所示。
(3) 最短鄰近線對應(yīng)的點(diǎn)是加密點(diǎn)且不位于任何一個建筑物多邊形中,若對應(yīng)的兩個建筑物平面多邊形線段間夾角angleAB>θ(θ為閾值),則該最短鄰近線須進(jìn)行刪除。因?yàn)橐粋€復(fù)雜建筑物內(nèi)兩個鄰近多邊形最鄰近邊線之間的夾角往往較小,如圖5(c)所示,一旦建筑物多邊形A與建筑物多邊形B之間的鄰近邊線夾角過大,則不需要進(jìn)行聚合。
圖5 應(yīng)該被排除的最短鄰近線的3種可能情況Fig.5 Three possible cases of the shortest adjacent lines that should be excluded
建筑物多邊形之間聚合區(qū)域是指兩個建筑物多邊形之間距離小于某一閾值的空間區(qū)域,該區(qū)域?qū)⒆優(yōu)閮蓚€建筑物多邊形之間相通的部分。在本文算法中,它是一組頂點(diǎn)間最短鄰近線所占領(lǐng)的區(qū)域,這組頂點(diǎn)間最短鄰近線稱為最短鄰近線組。
在建立了有效的最短鄰近線后,就可以確定一個建筑物群內(nèi)多邊形A到多邊形B的最短鄰近線組,該關(guān)系可以表示為{Ai→Bj},其中Ai表示位于多邊形A上的頂點(diǎn)編號,Bj表示位于多邊形B上的頂點(diǎn)編號;同樣,多邊形B到多邊形A的最短鄰近線組可以表示為{Bn→Am}。這兩個多邊形之間的最短鄰近線組實(shí)際上就是一個聚合區(qū)域,為了使聚合結(jié)果唯一,需要將這兩個最短鄰近線組按照相應(yīng)的順序合并。這里以{Ai→Bj}為基礎(chǔ),將{Bn→Am}中對應(yīng)表示不一樣的Am按照點(diǎn)的點(diǎn)位順序,依次插入到{Ai→Bj}(設(shè)此為過濾后的最短鄰近線組)中對應(yīng)的位置。若合并過程中頂點(diǎn)之間存在一對多或者多對一的關(guān)系,則選擇最短的一條最鄰近連線加入{Ai→Bj}中,以便頂點(diǎn)間形成一一對應(yīng)關(guān)系,例如在圖4(d)中,頂點(diǎn)PA1和頂點(diǎn)PA2同時對應(yīng)頂點(diǎn)PB1,選擇最短的一條最鄰近線PA2PB1加入最短鄰近線組中。最終得到A與B之間的最鄰近連線集合,表示為A?B。
最短鄰近線組最終必須由連續(xù)的最短鄰近線所組成。假設(shè)最短鄰近線組為A?B={(Ai,Bj),(Ai+1,Bj+1),(Ai+2,Bj+2),…,(Am,Bn)},其中,Ai和Bj分別表示A目標(biāo)和B目標(biāo)上的頂點(diǎn)編號。
若最短鄰近線組中連續(xù)的兩條最短鄰近線在同一側(cè)的點(diǎn)號并不連續(xù),則判斷這兩點(diǎn)之間的折線是否參與聚合;若不參與聚合,就進(jìn)行最短鄰近線組的分段。如圖6(a)所示,Ai+1≠Ai+2,無論其對應(yīng)頂點(diǎn)編號在建筑物平面多邊形B上是否連續(xù),都需要判斷這兩頂點(diǎn)之間的折線是否參與聚合。采用了3個指標(biāo)(圖6(a))。
(1) 頂點(diǎn)Ai+1與頂點(diǎn)Ai+2之間的直線距離為lA,相應(yīng)閾值為α。
(2) 從頂點(diǎn)Ai+1到點(diǎn)頂點(diǎn)Ai+2沿多邊形邊界的折線長度為rA,相應(yīng)閾值為β。
(3) 從頂點(diǎn)Ai+1到點(diǎn)頂點(diǎn)Ai+2沿多邊形邊界的折線和頂點(diǎn)Ai+1與頂點(diǎn)Ai+2之間的直線所圍成的面積為SA,相應(yīng)閾值為γ。
頂點(diǎn)Bj+1、頂點(diǎn)Bj+2分別是與頂點(diǎn)Ai+1、頂點(diǎn)Ai+2最鄰近的點(diǎn)。同理,可以計算頂點(diǎn)Bj+1與頂點(diǎn)Bj+2之間的直線距離lB、沿多邊形邊界的折線長度rB和這兩條線所圍成的面積SB。這3個指標(biāo)的閾值分別為α、β和γ。假定這兩個多邊形上對應(yīng)的折線部分與該兩條不連續(xù)最短鄰近線所圍成的區(qū)域?yàn)棣浮.?dāng)且僅當(dāng)lA<α∩rA<β∩SA<γ,同時lB<α∩rB<β∩SB<γ,則Ω為聚合區(qū)域。反之,該區(qū)域的對應(yīng)折線部分都不能參與聚合,將在區(qū)域Ω不符合聚合條件的折線處(如圖6(b)的折線P)對集合A?B進(jìn)行最短鄰近線組的分段,如圖6(b)所示,最短鄰近線組被分為兩段(兩個子集),圖中分別用虛線框標(biāo)出。
圖6 中間非聚合區(qū)域Fig.6 The middle areas not to be aggregated
另外,每個復(fù)雜建筑物(聚類)在根據(jù)最短鄰近線組進(jìn)行聚合時,需要對最短鄰近線組進(jìn)行過濾,主要判斷條件如下:
(1) 當(dāng)一個最短鄰近線組中只包含一條最短鄰近線時,如圖7(a)所示,這一條最短鄰近線僅僅是頂點(diǎn)的對應(yīng)關(guān)系,不能代表鄰近邊的關(guān)系,需要刪除。
(2) 當(dāng)一個最短鄰近線組中有兩條最短鄰近線,但是所對應(yīng)的多邊形上的兩條邊夾角大于閾值θ,如圖7(b)所示,則刪除這兩條最短鄰近線。
(3) 當(dāng)一個最短鄰近線組中有多條最短鄰近線,但是其對應(yīng)的多邊形邊長較短,短于閾值β1,并且多邊形之間的距離大于距離閾值β2,如圖7(c)所示,則這兩個多邊形之間需要合并的狹長區(qū)域較小,可以不合并,刪除有關(guān)的最短鄰近線。
圖7 應(yīng)該刪除的最短鄰近線組Fig.7 The groups of shortest adjacent lines that should be excluded
當(dāng)按照這些方法處理完每個群組內(nèi)所有建筑物多邊形之間的最短鄰近線組后,就可以進(jìn)行建筑物群聚合輪廓邊界點(diǎn)的標(biāo)識。
一個建筑物聚合后的輪廓線可能包括外部輪廓線和內(nèi)環(huán)。依據(jù)前面所搜索到的最短鄰近線組,可以把需要合并且不在輪廓線上的頂點(diǎn)屬性值記為YN=1,其他頂點(diǎn)的相應(yīng)屬性值記為YN=0。在此,記為YN=1的3種情形如下:
(1) 最短鄰近線組兩端的頂點(diǎn)需要標(biāo)記為YN=1。
(2) 合并區(qū)域Ω邊界上的頂點(diǎn)標(biāo)記為YN=1。
(3) 在建筑物平面多邊形邊界相交的情況下,建筑物平面多邊形的重疊部分所包含的頂點(diǎn)標(biāo)記為YN=1。
在標(biāo)記了邊界頂點(diǎn)的基礎(chǔ)上,搜索建筑物平面多邊形群組中屬性值Newbuiling≠2(設(shè)置頂點(diǎn)的另一個屬性為Newbuiling,表示沒有存儲到合并后的輪廓線數(shù)組中)的頂點(diǎn)中最左下角的點(diǎn),然后從該起點(diǎn)開始,順時針按最小旋轉(zhuǎn)角原則,遞歸搜索下一個在合并后建筑物輪廓邊界上的點(diǎn),新搜索到的邊界點(diǎn)存儲在數(shù)組MergeList中,并設(shè)置該頂點(diǎn)的屬性值Newbuiling=2(表示已經(jīng)存儲到合并后的輪廓線數(shù)組中),直至搜索到原始起點(diǎn);假設(shè)外環(huán)的坐標(biāo)串存儲在數(shù)組OuterRing中,內(nèi)環(huán)的坐標(biāo)串存儲在數(shù)組InnerRing中。一個整體建筑物實(shí)體的輪廓線提取方法如下:
(1) 搜索建筑物平面多邊形群組中屬性值Newbuiling≠2的頂點(diǎn)中最左下角的點(diǎn)P0,加入輪廓線數(shù)組MergeList,標(biāo)記Newbuiling=2,并判斷其內(nèi)外環(huán)屬性。內(nèi)外環(huán)屬性的判斷方法是:若數(shù)組OuterRing為空,則隨后搜索的環(huán)屬于外環(huán);否則,需要判斷點(diǎn)P0是否在任意一個外環(huán)內(nèi)。若點(diǎn)P0在任意一個外環(huán)內(nèi),則隨后搜索的環(huán)屬于內(nèi)環(huán),否則屬于外環(huán)。
(2) 設(shè)當(dāng)前頂點(diǎn)為Pi,搜索與Pi關(guān)聯(lián)的建筑物平面多邊形上的邊和最短鄰近線,然后按照順時針方向選擇與PiPi-1夾角最小的邊PiPi+1,并標(biāo)記點(diǎn)Pi+1的Newbuiling=2,Pi+1存入數(shù)組MergeList中。直到Pi+1=P0(i≠0),根據(jù)內(nèi)外環(huán)的判斷,把輪廓線存入OuterRing或InnerRing,清空MergeList。當(dāng)開始搜索時,在P0點(diǎn)處,P1是從P0開始,按照當(dāng)前建筑物平面多邊形邊線順時針方向搜索到的第一個點(diǎn)。
(3) 判斷群組中是否還存在頂點(diǎn)YN(Pi)=0,同時Newbuiling≠2。若存在,返回步驟(1);否則,執(zhí)行步驟(4)。
(4) 刪除面積小于閾值η的內(nèi)環(huán),按照內(nèi)外環(huán)的對應(yīng)關(guān)系輸出合并后的新建筑物實(shí)體的外圍輪廓,結(jié)束。
為了驗(yàn)證所提出的方法,采用Visual Studio 2015和C#開發(fā)語言,如圖8所示,流程實(shí)現(xiàn)了本文算法。以從互聯(lián)網(wǎng)上下載的1∶500的廣州市與成都市建筑物矢量數(shù)據(jù)為例,采用本文算法在當(dāng)前比例尺下進(jìn)行復(fù)雜建筑物多邊形聚合,旨在快速準(zhǔn)確提取復(fù)雜建筑物的輪廓形狀,為建筑物多尺度可視化提供條件。其中,廣州市測試數(shù)據(jù)集包含3704個建筑物,范圍為4.5 km2。由第2節(jié)中的公式可知,與最小視覺可分辨距離所對應(yīng)的地面距離為F=500×0.4 mm(文獻(xiàn)[29]建議的數(shù)值)。加密距離過大,可能出現(xiàn)搜索范圍內(nèi)沒有頂點(diǎn)的情況,造成鄰近關(guān)系無法正確表示。試驗(yàn)中規(guī)定插值距離d的范圍為F≤d≤Min(3F,ε),d取中間值0.4 m(2F)。聚合距離ε由用戶根據(jù)復(fù)雜建筑物聚合的需要設(shè)置,對于復(fù)雜建筑物,該閾值ε一般較小。試驗(yàn)過程中文算法的具體參數(shù)及閾值設(shè)置(實(shí)地距離)見表1。
圖8 建筑物群聚合流程Fig.8 Buildings aggregation
表1 試驗(yàn)參數(shù)設(shè)置
這些參數(shù)閾值都應(yīng)大于F。其中,設(shè)應(yīng)該保留的最小內(nèi)環(huán)面積閾值η=10 m2,那么中間非聚合區(qū)域的面積閾值γ=10 m2,同時依據(jù)試驗(yàn)數(shù)據(jù)的平面精度和大型復(fù)雜建筑物的復(fù)雜程度設(shè)置其他參數(shù)值。當(dāng)該方法用于更小比例尺(例如1∶1000)的復(fù)雜建筑物多邊形聚合時,需要用相同的方法計算F值,除加密點(diǎn)之間的距離d可以直接確定外,其他參數(shù)閾值根據(jù)需要人為設(shè)置。試驗(yàn)中所用計算機(jī)的配置為:處理器為Intel(R)Core(TM)i7-8550U CPU@1.80 GHz;內(nèi)存為16.0 G;操作系統(tǒng)為Windows10(64 bit),該測試數(shù)據(jù)集的運(yùn)行時間為95.90 s。
廣州市與成都市的建筑物多邊形聚合結(jié)果能滿足復(fù)雜建筑物輪廓提取的要求,為了分析本文算法的參數(shù)設(shè)置對聚合效果的影響,本文從大范圍試驗(yàn)區(qū)中選取了小部分典型區(qū)域進(jìn)行說明。圖9是廣州市部分區(qū)域的復(fù)雜建筑物聚合結(jié)果。圖9(a)是原始建筑物圖形,其中包含建筑物多邊形相離、相接以及相交的情況。圖9(b)中橘色線條為當(dāng)聚合距離ε=1 m時聚合所得的大型綜合性建筑物或離散建筑物群的輪廓線,其他參數(shù)設(shè)置見表1;其他參數(shù)設(shè)置不變的前提下,圖9(c)中橘色線條為當(dāng)聚合距離ε=2 m時聚合所得的大型綜合性建筑物或離散建筑物群的輪廓線;同樣,圖9(d)的建筑物聚合距離ε=3 m。這些參數(shù)中,聚合邊界的最大夾角θ越小,表明待聚合的建筑物鄰近邊界越接近平行,而建筑物多邊形夾角較大時,一般不屬于同一個復(fù)雜建筑物實(shí)體。中間非聚合區(qū)域相關(guān)參數(shù)閾值α、β、γ以及保留最小內(nèi)環(huán)大小閾值η決定了如何保留內(nèi)環(huán),一般面積較小的內(nèi)環(huán)無須保留。這些參數(shù)需要根據(jù)具體的應(yīng)用場景人為設(shè)置。試驗(yàn)中,除聚合距離外,其他參數(shù)均不變,目的是分析聚合距離對聚合效果的影響。由圖9可以看出,聚合距離越大,建筑物聚合范圍隨之增大,出現(xiàn)兩種現(xiàn)象:一是原來沒有聚合的區(qū)域隨閾值增加而聚合,如圖9(c)中圈出的區(qū)域所示;二是隨著部分區(qū)域的聚合形成封閉的內(nèi)環(huán),如圖9(d)中圈出的區(qū)域所示。由試驗(yàn)可知,當(dāng)聚合距離較小時,復(fù)雜建筑物實(shí)體所包含的部分密集多邊形的整體輪廓被提取出來,隨聚合距離增加,整個復(fù)雜建筑物實(shí)體輪廓形狀均被提取,且當(dāng)該試驗(yàn)數(shù)據(jù)的聚合距離為3 m時,提取的輪廓形狀更加符合視覺要求。因此,針對存在任意拓?fù)潢P(guān)系的建筑物多邊形群,本文算法能正確識別出建筑物多邊形之間的鄰近關(guān)系并進(jìn)行聚合,聚合后的復(fù)雜建筑物實(shí)體的輪廓形狀得到了合理保持。
圖9 局部試驗(yàn)結(jié)果Fig.9 Partial results in experiments
圖10(a)為原始數(shù)據(jù)的局部放大圖,基于表1參數(shù),本文方法聚合后的大型綜合性建筑物或離散建筑物群的整體輪廓見圖10(b);利用ArcGIS(10.2)軟件中的建筑物群聚合工具(聚合距離為1 m,保留的最小內(nèi)環(huán)面積為10 m)處理后的結(jié)果放大圖如圖10(c)所示。從試驗(yàn)結(jié)果可以看出,ArcGIS建筑物群聚合工具保持了建筑物邊線的直角化特征,并且為了盡量保持直角化特征,或考慮建筑物圖形簡化,得到的結(jié)果中存在外輪廓線與原始建筑物邊界不重合的現(xiàn)象,見圖10(c)中圈出的區(qū)域。為了達(dá)到建筑物可視化的理想效果,需要快速準(zhǔn)確地提取出大型復(fù)雜建筑物輪廓邊界,這與傳統(tǒng)地圖制圖綜合的要求有些不同。ArcGIS的建筑物群聚合工具包含了簡化操作,其結(jié)果可能會影響復(fù)雜建筑物的輪廓形狀,并不適用于本文所述的應(yīng)用場景。試驗(yàn)證明,采用本文方法聚合的大型綜合性復(fù)雜建筑物整體輪廓更接近其真實(shí)輪廓,且執(zhí)行效率較高,部分聚合效果如圖10(b)所示。
圖10 不同方法的試驗(yàn)結(jié)果對比Fig.10 Comparison between experimental results using different methods
建筑物輪廓線拐彎處垂直的概率與加密插值點(diǎn)密度有關(guān),加密插值點(diǎn)密度越大,拐彎垂直的概率越大。如圖11所示,當(dāng)頂點(diǎn)插值間距為0.6 m時,鄰近建筑物之間的連線就會出現(xiàn)“非直角化”現(xiàn)象。在圖11的圖例中,d表示頂點(diǎn)插值間距,不同的頂點(diǎn)插值間距所得到的建筑物輪廓線用不同的顏色表示;不同含義的加密點(diǎn)用不同大小不同顏色的圓形符號表示,其顏色和聚合后的輪廓線顏色一致;原始數(shù)據(jù)用藍(lán)色線條表示,但是絕大部分被壓蓋了。
圖11 不同插值距離的試驗(yàn)結(jié)果對比Fig.11 Comparison of experimental results under different interpolation distances
另外,當(dāng)插值距離分別為0.2 m、0.4 m和0.6 m時,聚合后的建筑物面積之和與原始建筑物群面積之和相比,分別增長0.093%、0.092%和0.087%,增加量差異不大,插值距離越大,建筑物聚合程度越大,但總面積和總周長的整體差別較小。單個復(fù)雜建筑物聚合前后的面積差異見表2,由于建筑物內(nèi)部多邊形之間拓?fù)潢P(guān)系的復(fù)雜性,聚合后的建筑物面積增加或者減少,但面積差異較小,對于復(fù)雜建筑物的聚合來說是合理的。
表2 單個復(fù)雜建筑物聚合前后的面積變化
現(xiàn)有的大多數(shù)建筑物群多邊形聚合算法主要處理相離和相接關(guān)系的多邊形聚合問題,為了滿足智慧城市可視化場景下任意拓?fù)潢P(guān)系的復(fù)雜建筑物內(nèi)部多邊形聚合要求,本文提出基于頂點(diǎn)間最短鄰近線的建筑物群聚合方法,綜合考慮了建筑物多邊形之間任意拓?fù)潢P(guān)系,通過加密建筑物邊線頂點(diǎn)快速尋找相鄰多邊形的頂點(diǎn)間最短鄰近線,從而實(shí)現(xiàn)對復(fù)雜建筑物整體輪廓的自動提取。與常用的基于Delaunay三角網(wǎng)的聚合方法相比,本文提出的方法同樣可以對空間對象間的鄰近關(guān)系進(jìn)行定性和定量表達(dá),即確定建筑物是否鄰近以及鄰近情況[14]。從試驗(yàn)結(jié)果可以看出,該方法具有以下優(yōu)勢:①能應(yīng)用于任意拓?fù)潢P(guān)系下的復(fù)雜建筑物多邊形聚合,可快速準(zhǔn)確提取符合認(rèn)知規(guī)律的復(fù)雜建筑物的整體輪廓;②基于頂點(diǎn)間最短鄰近連線能快速探測到建筑物多邊形之間的鄰近聚合區(qū)域,有利于復(fù)雜建筑物多邊形的聚合;③基于加密點(diǎn)和網(wǎng)格索引的方法能快速確定建筑物多邊形之間的鄰近關(guān)系。
本文提出的方法在應(yīng)用于大范圍和大規(guī)模復(fù)雜建筑物多邊形聚合時,有必要先考慮空間數(shù)據(jù)分區(qū);同時,應(yīng)用到建筑物群自動綜合中、還需考慮保持和維護(hù)建筑物邊界的直角化特征。未來,將研究該算法與其他地圖綜合算子相結(jié)合的方法,拓展本文算法的適用場景和應(yīng)用效果。