周宇陽
摘要:全國第二次土地調(diào)查圖件的手工制作方法工作量非常大,錯(cuò)誤難以避免,所以實(shí)現(xiàn)自動(dòng)化標(biāo)注是必要的。由于面狀要素情況復(fù)雜,已有算法效果不理想,作者提出了基于最大空間的空間擠壓算法。經(jīng)實(shí)踐生產(chǎn)檢驗(yàn),該算法對(duì)土地利用圖件的編號(hào)與符號(hào)自動(dòng)標(biāo)注效果良好。
關(guān)鍵詞:土地利用現(xiàn)狀圖;圖斑號(hào);地類符號(hào);空間最大點(diǎn);擠壓
0引言
在全國第二次土地調(diào)查(以下簡(jiǎn)稱二調(diào))工作中,圖件制作是非常重要的內(nèi)容之一。一般情況下,地圖的標(biāo)注可以分為三類:點(diǎn)特征的標(biāo)注(例如城市、山峰,土地利用圖中的地類符號(hào)和圖斑號(hào))、線特征的標(biāo)注(例如河流、道路)以及區(qū)域特征的標(biāo)注(例如海洋或者國家,土地利用圖中的圖斑)。點(diǎn)和線的自動(dòng)標(biāo)注研究較多,也有較成熟的算法。而面狀要素情況復(fù)雜,針對(duì)面狀要素標(biāo)注產(chǎn)生了多種算法。這些算法經(jīng)過了實(shí)踐應(yīng)用被證明行之有效,但由于土地利用圖件是特殊的土地專題圖件,圖面情況很復(fù)雜,常用的標(biāo)注方法在處理形狀規(guī)則、面積大小適中的區(qū)域時(shí)效果不錯(cuò),但是在處理狹長區(qū)域,不能按比例擺放標(biāo)注內(nèi)容,U形區(qū)、環(huán)形區(qū)、樹枝狀區(qū)、區(qū)內(nèi)有空洞等異形區(qū)域,空間過小、要標(biāo)注到區(qū)外等一些情況時(shí)會(huì)發(fā)生困難。
1基于最大空間擠壓的方法
二調(diào)要求提交的圖件成果主要有土地利用現(xiàn)狀圖、坡度分級(jí)圖、基本農(nóng)田分布圖以及部分大比例尺的掛圖等,土地利用現(xiàn)狀圖是所有圖件的基礎(chǔ)與重點(diǎn),具有典型的特點(diǎn)。在土地利用現(xiàn)狀圖上,權(quán)屬拐點(diǎn)、線狀地物寬度注記是固定位置和大小的,權(quán)屬名稱、小地名、河湖路名等,情況復(fù)雜且工作量不算大,可以先標(biāo)注好。工作量最大的就是圖斑號(hào)和地類符號(hào)的標(biāo)注,而它們都是對(duì)圖斑區(qū)的標(biāo)注。本文以土地利用現(xiàn)狀圖為例,利用基于最大空間擠壓的方法解決圖斑號(hào)和地類符號(hào)的標(biāo)注,過程如下:
1.1 生成限制條件
將圖上所有的線收集,包括權(quán)屬界線、線狀地物、地類界線、已畫好的指引線等,新標(biāo)注的內(nèi)容不能和這些線有重疊。為方便下面的描述,將這一線集合稱為“線限制”。
將現(xiàn)有的點(diǎn)內(nèi)容生成外包多邊形,新標(biāo)注的內(nèi)容將不能在此類多邊形內(nèi)部標(biāo)注,也不能和它們有重疊。為方便描述,將這一多邊形集合稱為“點(diǎn)限制”,如下圖:
挑出有圖案的區(qū),比如城市、建制鎮(zhèn)和農(nóng)村宅基地等,除了本圖斑的圖斑號(hào),其他圖斑的圖斑號(hào)不宜標(biāo)注在其中,因?yàn)閳D案會(huì)使指引線看不清。為方便描述,將這一多邊形集合稱為“區(qū)限制”。
將要標(biāo)注的內(nèi)容生成外包多邊形并找到其中心點(diǎn),中心點(diǎn)就是要標(biāo)注位置的坐標(biāo)。土地利用圖件中的幾十種地類符號(hào)形狀各不相同,要準(zhǔn)備好所有地類符號(hào)的外包絡(luò)線,用來驗(yàn)證地類符號(hào)標(biāo)注后會(huì)不會(huì)和其他要素重疊。
1.2 分析要標(biāo)注的圖斑區(qū)的情況
按面積從小到大將圖斑排序,先處理面積小的圖斑。因?yàn)樾D斑要將圖斑號(hào)標(biāo)注在區(qū)外,占用其他圖斑的空間,周邊其他圖斑很可能不是小圖斑,有足夠的空間。如果先標(biāo)注了大圖斑,則有可能占用小圖斑將要在圖斑外標(biāo)注的位置。那么圖斑區(qū)的標(biāo)注情況有幾種類型:
情況①:面積很小的,只能將地類符號(hào)標(biāo)在區(qū)內(nèi),圖斑號(hào)要用指引線引出;
情況②:面積再大一點(diǎn),圖斑號(hào)和地類符號(hào)都要標(biāo)在區(qū)內(nèi),但是要指定特殊的點(diǎn)才能將二者標(biāo)下并且保持美觀。這些圖斑中每個(gè)標(biāo)注內(nèi)容都只要標(biāo)注一次就能達(dá)到效果,而不會(huì)太稀疏以至在很大的地方留白使讀圖時(shí)找不到;
情況③:面積更大的圖斑,要求標(biāo)注多個(gè)圖斑號(hào)和地類符號(hào),還要按規(guī)則排列;
情況④:圖斑區(qū)用圖案來表示地類的,就不需要標(biāo)注地類符號(hào),只要標(biāo)注圖斑號(hào)。
1.3 圖斑的標(biāo)注處理
情況①和④有個(gè)共同點(diǎn),就是圖斑區(qū)內(nèi)只要標(biāo)注一個(gè)內(nèi)容,我們先做這個(gè)處理。根據(jù)今天提出的算法的要求,要求出當(dāng)前圖斑的內(nèi)部空間最大的那個(gè)點(diǎn)。其實(shí)這也是一個(gè)特定的幾何問題,圖斑區(qū)的邊實(shí)際是一個(gè)多邊形,求一個(gè)任意多邊形內(nèi)空間最大的點(diǎn),就是求它的最大內(nèi)切圓,也可說是找到這個(gè)多邊形里面能夠放進(jìn)的最大的圓的圓心。求這個(gè)最大的圓有許多種算法,可以根據(jù)情況來選用。這里列出一個(gè)可以精確求出坐標(biāo)的方法:將多邊形的所有邊組合為三角形,求出所有三角形的內(nèi)切圓,再舍去與邊相交的圓,剩下的圓中面積最大的圓的圓心就是我們要找的坐標(biāo)。當(dāng)然這個(gè)方法用在邊數(shù)過多的多邊形上會(huì)變慢。比如有30條邊的多邊形,組合出C(30,3)=30!/((30-3)!*3!=4060 個(gè)三角形,如果有100條邊,則要組合出161700個(gè)三角形。
求出了這個(gè)空間最大的點(diǎn),就可以檢驗(yàn)要標(biāo)注的內(nèi)容能不能放進(jìn)圖斑內(nèi)而不壓蓋其他內(nèi)容。如果可以,就可以確定標(biāo)注下來;如果不能,就要標(biāo)注到區(qū)外。下面處理要標(biāo)注到區(qū)外的情況。
先設(shè)定標(biāo)出區(qū)外的內(nèi)容邊緣與此區(qū)邊緣的距離,找到標(biāo)注內(nèi)容中心點(diǎn)在區(qū)外的可標(biāo)注點(diǎn)連成的線,再找到這條線的中心點(diǎn),這一點(diǎn)是空間最大的點(diǎn),也就是標(biāo)注點(diǎn)。
情況②的處理是關(guān)鍵,要使標(biāo)注在區(qū)內(nèi)的兩點(diǎn)都得到最大的空間,方法如下:
先求出一個(gè)最大內(nèi)切圓的圓心,在這一點(diǎn)上先標(biāo)注一個(gè)點(diǎn),得到這一點(diǎn)的外包絡(luò)線后加入到“點(diǎn)限制”;然后再對(duì)這個(gè)圖斑求空間最大點(diǎn),由于剛才增加了一個(gè)點(diǎn),現(xiàn)在的這一點(diǎn)會(huì)定在靠邊緣一點(diǎn)。把上一個(gè)點(diǎn)的“點(diǎn)限制”清除,將現(xiàn)在點(diǎn)的外包絡(luò)線加入到“點(diǎn)限制”。然后重復(fù)這一過程幾次,會(huì)得到較接近精確的兩個(gè)點(diǎn)。這個(gè)問題實(shí)際是求一個(gè)任意多邊形怎樣插入兩個(gè)最大的圓(這兩個(gè)圓的半徑因?yàn)闃?biāo)注內(nèi)容的大小不同而有所不同,但是兩個(gè)標(biāo)注包絡(luò)線邊緣,到包含它們的多邊形邊緣的距離相等,這個(gè)距離也等于兩個(gè)標(biāo)注包絡(luò)線邊緣距離的一半)。這一過程如下列圖示:
因?yàn)榈玫竭@兩個(gè)點(diǎn)的過程就像是兩個(gè)點(diǎn)爭(zhēng)相擠占空間,最后得到平衡的過程,所以命名為“基于最大空間擠壓的方法”。用這個(gè)方法也可以處理圖斑區(qū)內(nèi)要標(biāo)注多個(gè)不同內(nèi)容點(diǎn)的情況,只是數(shù)目大的時(shí)候會(huì)很慢。
情況③其實(shí)與本方法沒有關(guān)系,這種情況的圖斑面積很大,只要以一定的密度用蜂巢狀陣列要標(biāo)注的內(nèi)容即可;如果是很長的圖斑如高速公路,只要間隔一定的距離標(biāo)注即可。
1.4 不能標(biāo)注的情況
有一小部分的圖斑由于本身面積很小或形狀不適合,不能標(biāo)注在圖斑內(nèi)部,但是外部的圖斑也很密集,也不能提供標(biāo)注的空間,所以上述方法無法自動(dòng)標(biāo)注,這種情況,要做好記錄,留待人機(jī)交互來處理。
2結(jié)語
本方法的應(yīng)用范圍不限于土地利用圖件,所有根據(jù)屬性標(biāo)注一個(gè)到多個(gè)點(diǎn)(兩個(gè)以上的點(diǎn)也可以加入擠壓)的情況都可以得到不錯(cuò)的效果。本方法最大優(yōu)點(diǎn)是標(biāo)注排列角度非常自然,沒有人為擺放時(shí)的呆板。