專利名稱:一種復(fù)雜矢量多邊形圖形空間疊置分析制圖方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,其核心技術(shù)是基于矢量多邊形圖形與精度游程編碼圖形混合疊置處理的方法,屬于地理信息系統(tǒng)中的空間分析制圖和空間數(shù)據(jù)挖掘等技術(shù)領(lǐng)域。
背景技術(shù):
矢量多邊形圖形空間疊置分析是對兩個包含空間要素拓?fù)潢P(guān)系的不規(guī)則面元集合實(shí)施的空間疊合操作,它將兩幅單要素面狀圖層進(jìn)行疊置產(chǎn)生一個新的要素圖層,新的要素圖層綜合了兩幅原地層要素具有的屬性,并建立了新的要素圖層單元與兩個疊置圖層單元之間的隸屬關(guān)系。矢量多邊形圖形空間疊置分析不僅生成了新圖形及其空間關(guān)系,而且還將輸入的多個數(shù)據(jù)層的屬性聯(lián)系起來產(chǎn)生了新的屬性關(guān)系。從原理上說,矢量多邊形圖形空間疊置分析是對面狀分布的多層空間要素按一定的數(shù)學(xué)模型進(jìn)行計算分析,其中涉及到邏輯交、邏輯并、邏輯差等運(yùn)算?!な噶慷噙呅螆D形空間疊置分析可以形象的理解為對一幅按某種要素分級或分類所做的空間分割圖形,再按另一種要素分級或分類做新的一輪空間分割。通過矢量多邊形圖形拓?fù)浏B置分析可以對多幅圖層要素地圖進(jìn)行綜合,獲得在幾何面積上更為細(xì)碎而在要素指標(biāo)更為多元的詳細(xì)分類圖層,提供各個原始圖層無法單獨(dú)明確界定的有價值的空間信息。兩幅矢量多邊形圖形的疊置分析是多邊形圖形空間疊置分析制圖的基本操作,多次調(diào)用該操作可以實(shí)現(xiàn)多幅矢量多邊形圖形的疊置分析制圖。通常,實(shí)現(xiàn)矢量多邊形空間疊置分析制圖主要通過相互疊置圖形間多邊形圖形鏈段的求交、分解、重組和拓?fù)潢P(guān)系重建等幾個步驟,但是隨著地理信息分析技術(shù)應(yīng)用的深入,分析區(qū)域的擴(kuò)大和高精度分析需求的激增,面臨的問題將日趨復(fù)雜,現(xiàn)有方法通常難以承受形態(tài)復(fù)雜和具有海量圖斑單元矢量多邊形圖形間拓?fù)浏B置分析制圖所消耗的計算資源,其處理效率瓶頸凸顯,分析可靠性受至IJ挑戰(zhàn),迫切需要高效、簡便、可靠和實(shí)用的新技術(shù)出現(xiàn)。據(jù)申請人了解,目前已有的方法大致可分為直接方法和間接方法兩類一是直接方法即純碎的矢量求交方法,需要對疊置圖形的所有多邊形圖形鏈段進(jìn)行相交判別,對相交鏈段進(jìn)行交點(diǎn)計算和分解,最后重建拓?fù)潢P(guān)系。為了檢出兩幅多邊形圖形間可能相交的鏈段,過濾空間相離的鏈段,減少不必要的求交計算,出現(xiàn)了外包矩形檢測法、矢量柵格方法、柵格輔助法等,這些方法在一定程度上提高了分析制圖的效率,但對較大幅面的復(fù)雜圖形而言,算法增加的額外空間與時間開銷依然過大,仍然可能超出可接受的范圍,制約了方法的實(shí)用性;二是間接方法,即先將參與疊置的多邊形圖形轉(zhuǎn)換為一定精度的柵格圖形,再對柵格圖形進(jìn)行疊置,最后將疊置后的柵格圖形轉(zhuǎn)換為矢量多邊形圖形,并建立相應(yīng)的拓?fù)潢P(guān)系。由于矢量多邊形圖形與柵格圖形之間的轉(zhuǎn)換是一種精度損耗的圖形格式變換,疊置分析獲得的矢量多邊形圖形的精度取決于采用的柵格精度,而高精度柵格分析通常會急劇增加存貯空間,其格式雙向轉(zhuǎn)換及疊置處理時間也會大幅提升,可行性降低。因此,間接方法及算法的空間和時間復(fù)雜度同時受到圖形復(fù)雜程度和柵格精度的雙重制約,其實(shí)用性受到影響,難以成為性能穩(wěn)定和高效的空間疊置分析方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種面向復(fù)雜圖形、可靠和高效的矢量多邊形圖形空間疊置分析制圖方法。具體而言,針對上述現(xiàn)有技術(shù)存在的問題,提出一種簡化兩幅矢量多邊形圖形疊置過程中鏈段求交分解和成果矢量多邊形圖形拓?fù)潢P(guān)系構(gòu)建的方法,即基于矢量多邊形圖形與精度游程編碼圖形混合疊置的復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,從而提高矢量多邊形圖形空間疊置分析制圖技術(shù)的魯棒性和實(shí)用性。本發(fā)明設(shè)計了用于混合疊置處理的精度游程編碼,其存儲格式有別于常規(guī)柵格游程編碼,它按預(yù)定的縱向精度間隔將矢量多邊形圖形劃分為一系列相同高度的水平條帶,每個條帶對應(yīng)一個游程記錄表,其中有序排列的一組游程記錄對應(yīng)條帶中的各個區(qū)段,每個游程記錄相應(yīng)區(qū)段的起始位置(多邊形圖形鏈段與該條帶中間掃描線交點(diǎn))的Z坐標(biāo)和區(qū)段所處(交點(diǎn)右側(cè))的多邊形編碼。由于按預(yù)定縱向精度間隔劃分的條帶上的游程以表示區(qū)段起始位置精確的z坐標(biāo)數(shù)值取代了常規(guī)游程的柵格數(shù),因此可使精度游程編碼存儲的圖形無精度損失。 精度游程編碼記錄數(shù)據(jù)結(jié)構(gòu)
Struct RLEncoding {
double X;//鏈段與掃描線交點(diǎn)x坐標(biāo)
int rightpoly;//交點(diǎn)右側(cè)多邊形編碼
}
假設(shè)參與疊置的兩幅矢量多邊形圖形分別為圖A和圖B,疊置獲得的矢量多邊形圖形為圖C,本發(fā)明可實(shí)現(xiàn)五種空間疊置模式,分別是Α Β、Α(;Β、(AEB) gA, (Α Β)卬、A_B,即圖A與圖B并、圖A與圖B交、圖A域內(nèi)的Α Β、圖B域內(nèi)的Α Β、圖A與圖B差。本發(fā)明參與疊置分析的矢量多邊形圖形的組成多邊形面元具有預(yù)定的編碼標(biāo)識——多邊形編碼,疊置成果矢量多邊形圖形的組成多邊形面元也具有唯一的編碼標(biāo)識——多邊形編碼,且具有簡略的空間關(guān)系表達(dá)形式,采用無冗余的空間數(shù)據(jù)存儲方式,相鄰多邊形的共同邊界鏈段只存儲一次,其數(shù)據(jù)結(jié)構(gòu)主要包括多邊形圖形鏈段索引記錄表、鏈段坐標(biāo)數(shù)據(jù)表和多邊形屬性表(DBF數(shù)據(jù)格式),鏈段索引在記錄鏈段坐標(biāo)存儲位置和存儲長度的同時,也記錄了鏈段兩側(cè)的多邊形編碼,以表示與相鄰多邊形的空間關(guān)系。Struct LinkIndex { //多邊型鏈段索引表記錄結(jié)構(gòu)
long Link_id;//鏈段標(biāo)識碼
long LeftPolycode;//左側(cè)多邊形編碼(左區(qū)碼)
long RightPolycode; //右側(cè)多邊形編碼(右區(qū)碼) long Coordadd;//坐標(biāo)起始位置
long CoordCount;//鏈段坐標(biāo)個數(shù)
}
歸納起來,為了達(dá)到以上目的,本發(fā)明提出的復(fù)雜矢量多邊形圖形空間疊置分析制圖方法包括以下基本步驟
步驟I、圖形轉(zhuǎn)換——分別將兩幅矢量多邊形圖形(A、B)轉(zhuǎn)換成相應(yīng)的精度游程編碼圖形(參見圖4-c和圖4-d的AK、BK),所述精度游程編碼由游程表示區(qū)段起始位置的X坐標(biāo)和區(qū)段所處多邊形的編碼構(gòu)成;
步驟2、交叉混合疊置處理——分別以轉(zhuǎn)換得到的兩幅精度游程編碼圖形中的一幅為背景底圖,以交叉方式對另一幅矢量多邊形圖形鏈段進(jìn)行上覆遍歷疊置、跨多邊形檢測和分解,分別得到對應(yīng)兩幅疊置矢量多邊形圖形的兩組分解和未分解鏈段(參見圖4-g和圖4-h);
步驟3、篩選構(gòu)圖鏈段——按照預(yù)定疊置模式對疊置產(chǎn)生的兩組分解和未分解鏈段進(jìn)行篩選,篩選出符合疊置模式的合格鏈段作為疊置成果矢量多邊形圖形的組成鏈段(參見圖I);
步驟4、構(gòu)建含有確定空間關(guān)系的疊置成果矢量多邊形圖形——按預(yù)定規(guī)則對疊置成 果矢量多邊形圖形的組成鏈段進(jìn)行左右多邊形區(qū)域編碼,構(gòu)建疊置成果矢量多邊形圖形組成鏈段與其兩側(cè)多邊形面元的空間拓?fù)潢P(guān)系,以及疊置成果矢量多邊形圖形面元與所述兩幅矢量多邊形圖形面元的隸屬關(guān)系,構(gòu)成含有空間關(guān)系的疊置成果矢量多邊形圖形(參見圖 4-i)。簡言之,本發(fā)明先對矢量多邊形圖形A和B進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換處理,分別獲得相應(yīng)的兩幅精度游程編碼圖形K和Bk ;將矢量多邊形圖形A與圖B的精度游程編碼圖形Bk進(jìn)行空間疊置操作,再將矢量多邊形圖形B與圖A的精度游程編碼圖形Ak進(jìn)行空間疊置操作;兩次疊置獲得的鏈段經(jīng)過疊置模式篩選和空間關(guān)系構(gòu)建后,最終構(gòu)成成果矢量多邊形圖形C0本發(fā)明針對復(fù)雜矢量多邊形圖形空間疊置分析制圖中鏈段求交分解和疊置成果圖形拓?fù)潢P(guān)系構(gòu)建等困難問題,提出將參與疊置的兩幅矢量多邊形圖形分別與對方圖形的精度游程編碼圖形混合疊置處理的方法。通過基于精度游程編碼圖形的點(diǎn)面包含分析,對跨越多邊形的矢量鏈段進(jìn)行交點(diǎn)計算和分解處理,避免了兩幅復(fù)雜矢量多邊形圖形直接疊置所帶來的大量鏈段相交判斷和可能出現(xiàn)的誤判及遺漏,同時上述處理過程為成果矢量多邊形圖形空間關(guān)系的構(gòu)建帶來方便,非常有利于有效建立新的拓?fù)潢P(guān)系。從分析制圖的可操作性角度來看,將矢量多邊形之間復(fù)雜的空間拓?fù)浏B置問題簡化為矢量多邊形圖形與精度游程編碼圖形間的疊置問題,可以在保證疊置精度的前提下使疊置成果矢量多邊形圖形的鏈段生成及其拓?fù)潢P(guān)系構(gòu)建變得直觀、可靠和易于實(shí)現(xiàn),提高了矢量多邊形圖形空間疊置分析制圖技術(shù)的可操作性、魯棒性和實(shí)用性。
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的說明。圖I為本發(fā)明的5種模式的矢量多邊形圖形空間疊置示意圖。圖2為本發(fā)明一個實(shí)施例的流程圖。圖3為圖2實(shí)施例中矢量多邊形圖形與精度游程編碼圖形疊置時鏈段求交與分解處理流程圖。圖4為本發(fā)明一個實(shí)施例具有相同矩形輪廓兩幅矢量多邊形圖形空間疊置示意圖。圖中黑點(diǎn)為鏈段結(jié)點(diǎn),菱形點(diǎn)為探測節(jié)點(diǎn),白點(diǎn)為跨界交點(diǎn)(新結(jié)點(diǎn))。
具體實(shí)施方式
實(shí)施例一
本實(shí)施例的復(fù)雜多邊形空間疊置分析制圖方法實(shí)現(xiàn)步驟如下(參見圖2)
步驟I、圖形轉(zhuǎn)換——分別對參加疊置的兩幅矢量多邊形圖形A和B進(jìn)行轉(zhuǎn)換處理,生成它們相應(yīng)的精度游程編碼圖形K和Βκ,以備混合疊置分析時使用。具體轉(zhuǎn)換步驟如下第i-ι步、以預(yù)定的縱向精度間隔在疊置分析制圖矩形范圍內(nèi)布設(shè)水平掃描線,為每條水平掃描線設(shè)置一個記錄多邊形圖形鏈段穿越次數(shù)計數(shù)器;遍歷矢量多邊形圖形A的各條鏈段,將所述鏈段穿越各掃描線的次數(shù)分別記錄到對應(yīng)的計數(shù)器中;
第1-2步、根據(jù)穿越次數(shù)計數(shù)器的計數(shù)結(jié)果建立分別對應(yīng)每條掃描線的游程編碼表(該編碼表的存儲空間根據(jù)計數(shù)器的計數(shù)結(jié)果確定),所述游程編碼表用于逐一記錄各條多邊形圖形鏈段穿越掃描線時交點(diǎn)的X坐標(biāo)及其右側(cè)多邊形的編碼;
第1-3步、再次遍歷矢量多邊形圖形A的所有鏈段,計算所述鏈段穿越掃描線時交點(diǎn)的X坐標(biāo),連同交點(diǎn)右側(cè)的多邊形編碼逐一存儲到對應(yīng)的游程編碼表中(當(dāng)鏈段由下向上穿越·掃描線時,交點(diǎn)右側(cè)的多邊形編碼為鏈段的右區(qū)碼,當(dāng)鏈段由上向下穿越掃描線時,右側(cè)的多邊形編碼為鏈段的左區(qū)碼);
第1-4步、以精度游程編碼表中記錄的X坐標(biāo)為關(guān)鍵字,分別對各條掃描線的精度游程編碼表做遞增排序,獲得矢量多邊形圖形A的精度游程編碼圖形Ak ;
第1-5步、對另一矢量多邊形圖形B重復(fù)上述4個步驟的處理過程,得到相應(yīng)的精度游程編碼圖形Βκ。(參見圖4-c和圖4-d,其中虛線為游程條帶間的界線,掃描線則處于相鄰虛線之間的中線上)。步驟2、交叉混合疊置處理(參見圖3)—分別以轉(zhuǎn)換得到的兩幅精度游程編碼圖形中的其中一幅為背景底圖,按交叉方式對另一幅待疊置的矢量多邊形圖形的鏈段進(jìn)行上覆遍歷疊置、跨多邊形檢測和分解,分別得到對應(yīng)兩幅疊置矢量多邊形圖形的兩組分解和未分解鏈段(參見圖4-g和圖4-h)。具體按以下各步對待疊置矢量多邊形圖形與精度游程編碼圖形混合疊置處理
第2-1步、以精度游程編碼圖BBk為背景底圖,按順序?qū)κ噶慷噙呅螆D形A的每條鏈段進(jìn)行跨B圖多邊形探測。以預(yù)定探測步長依次判斷當(dāng)前處理鏈段中的相鄰探測節(jié)點(diǎn)落入背景底圖的多邊形區(qū)域是否發(fā)生改變(采用點(diǎn)面包含分析),當(dāng)判斷到的相鄰兩個探測點(diǎn)落入背景底圖不同多邊形區(qū)域時,則在這兩個相鄰探測點(diǎn)的連線上采用折半逼近法計算跨越點(diǎn)坐標(biāo),并在跨越點(diǎn)(即交點(diǎn))處分解該鏈段,對多次跨越背景底圖不同多邊形的鏈段則實(shí)施多次分解,對從未跨越底圖不同多邊形的鏈段不進(jìn)行分解(參見圖3以及圖4-e和圖4-g);第2-2步、以精度游程編碼圖形K為背景底圖,按順序?qū)κ噶慷噙呅螆D形B的每條鏈段進(jìn)行跨A圖多邊形探測。以預(yù)定探測步長依次判斷當(dāng)前處理鏈段中的相鄰探測節(jié)點(diǎn)落入背景底圖的多邊形區(qū)域是否發(fā)生改變,當(dāng)判斷到的相鄰兩個探測點(diǎn)落入背景底圖不同多邊形區(qū)域時,則在這兩個相鄰探測點(diǎn)的連線上采用折半逼近法計算跨越點(diǎn)坐標(biāo),并在跨越點(diǎn)處分解該鏈段,對多次跨越背景底圖不同多邊形的鏈段則實(shí)施多次分解,對從未跨越背景底圖不同多邊形的鏈段不進(jìn)行分解(參見圖4-f和圖4-h)。以上混合疊置處理中上覆矢量多邊形圖形鏈段探測點(diǎn)落入背景底圖多邊形區(qū)域的點(diǎn)面包含判斷方法為根據(jù)探測點(diǎn)的y坐標(biāo)直接定位到背景底圖相應(yīng)掃描線的精度游程編碼表,再根據(jù)探測點(diǎn)的X坐標(biāo)對該精度游程編碼表進(jìn)行折半查找,檢索到探測點(diǎn)所處的游程區(qū)段,從而獲得探測點(diǎn)在背景底圖中所處的多邊形區(qū)域及其編碼。多邊形圖形鏈段跨越背景底圖多邊形區(qū)域的跨越點(diǎn)(交點(diǎn))坐標(biāo)折半逼近計算方法為根據(jù)跨越點(diǎn)兩側(cè)相鄰探測點(diǎn)坐標(biāo)計算中點(diǎn)坐標(biāo),以中點(diǎn)坐標(biāo)代替與其落入背景底圖同樣多邊形區(qū)域的相鄰探測點(diǎn)坐標(biāo),使兩個相鄰探測點(diǎn)逼近跨越點(diǎn),重復(fù)上述逼近過程直到兩個相鄰探測點(diǎn)充分接近(距離小于預(yù)定精度)時,它們的中點(diǎn)坐標(biāo)即為跨越點(diǎn)坐標(biāo)。例如,圖4-e中探測點(diǎn)r和《落入背景底圖的不同多邊形區(qū)域,以它們作為最初的相鄰探測點(diǎn),采用折半逼近計算方法即可計算出處于它們連線上的跨越點(diǎn)。需要說明的是,如果待疊置矢量多邊形圖形A和B的外輪廓邊界完全一致(如圖4-a和圖4-b),混合疊置處理時,矢量多邊形圖形A的所有鏈段參加疊置(如圖4-e),而矢量多邊形圖形B只有內(nèi)部鏈段參加疊置(如圖4-f ),此時對矢量多邊形圖形A的外輪廓鏈段(左多邊形編碼或右多邊形編碼為O的鏈段)上的探測點(diǎn)采用鄰近原則判別其落入B圖中的多邊形區(qū)域。例如,圖4-e中矢量多邊形圖形A矩形外輪廓右側(cè)鏈段上的探測點(diǎn)可能落入所在Bk游程條帶的最后區(qū)段(區(qū)段編碼為0),此時取鄰近的非O游程區(qū)段即左側(cè)的游程 區(qū)段作為其落入?yún)^(qū)段。步驟3、篩選構(gòu)圖鏈段——按預(yù)先設(shè)定的疊置模式將組成疊置成果矢量多邊形圖形的相關(guān)鏈段篩選出來,即按照預(yù)定疊置模式對疊置產(chǎn)生的兩組分解和未分解鏈段進(jìn)行篩選,篩選出符合疊置模式的合格鏈段作為疊置成果矢量多邊形圖形的組成鏈段(參見圖I);本發(fā)明支持的五種空間疊置模式分別是Α Β、Α(;Β、(AEB)gA, (AEB)gB,A-B,即圖A與圖B并、圖A與圖B交、圖A域內(nèi)的Α Β、B圖域內(nèi)的Α Β、A圖與B圖差(參見圖I)。按各種疊置模式篩選疊置產(chǎn)生鏈段的處理分別為
第3-1步、預(yù)定疊置模式為并模式——此模式對圖A與圖B疊置產(chǎn)生的所有多邊形均予以保留,兩次混合疊置產(chǎn)生的所有分解和未分解鏈段均選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段(參見圖Ι-c);
第3-2步、預(yù)定疊置模式為交模式——此模式對矢量多邊形圖形A與精度游程編碼圖形Bk疊置產(chǎn)生的分解鏈段或未分解鏈段,若其落入矢量多邊形圖形B輪廓范圍以內(nèi),則選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段,否則丟棄。同樣,對矢量多邊形圖形B與精度游程編碼圖形Ak疊置產(chǎn)生的分解鏈段或未分解鏈段,若其落入矢量多邊形圖形A輪廓范圍以內(nèi),則選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段,否則丟棄(參見圖1-d)。第3-3步、預(yù)定疊置模式為矢量多邊形圖形A域內(nèi)的并模式——矢量多邊形圖形A與精度游程編碼圖形Bk疊置產(chǎn)生的分解鏈段或未分解鏈段均選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段;對矢量多邊形圖形B與精度游程編碼圖形K疊置獲得的分解鏈段或未分解鏈段,若其落入矢量多邊形圖形A輪廓范圍以內(nèi),則篩選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段,否則丟棄(參見圖1-h)。第3-4步、預(yù)定疊置模式為矢量多邊形圖形B域內(nèi)的并模式——矢量多邊形圖形B與精度游程編碼圖形Ak疊置產(chǎn)生的分解鏈段或未分解鏈段均選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段;對矢量多邊形圖形A與精度游程編碼圖形Bk疊置獲得的分解鏈段或未分解鏈段,若其落入矢量多邊形圖形B輪廓范圍以內(nèi),則選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段,否則丟棄(參見圖1-i)。
第3-5步、預(yù)定疊置模式為差模式——對矢量多邊形圖形A與精度游程編碼圖形Bk疊置產(chǎn)生的分解鏈段或未分解鏈段,若其落入矢量多邊形圖形B輪廓范圍以外,則選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段,若其落入矢量多邊形圖形B輪廓范圍以內(nèi),則丟棄;對矢量多邊形圖形B與精度游程編碼圖形K疊置產(chǎn)生的分解鏈段或未分解鏈段,若其來自矢量多邊形圖形B的輪廓鏈段且落入矢量多邊形圖形A輪廓范圍以內(nèi),則選為合格鏈段,作為疊置成果矢量多邊形圖形C的組成鏈段,若其來自矢量多邊形圖形B內(nèi)部鏈段,則丟棄(參見圖l_e)。簡言之,即對疊置產(chǎn)生的新鏈段——包括分解和未分解鏈段,進(jìn)行符合疊置模式的篩選,以篩選出的鏈段集合構(gòu)成疊置成果矢量多邊形圖形。并模式下的疊置結(jié)果為矢量多邊形圖形A、B兩圖疊置產(chǎn)生的所有多邊形集合,交模式下的疊置結(jié)果為矢量多邊形圖形A、B兩圖公共范圍以內(nèi)疊置產(chǎn)生的多邊形集合,圖A域內(nèi)的并模式疊置結(jié)果是對上述并模式疊置結(jié)果按圖A輪廓范圍進(jìn)行拾取,圖B域內(nèi)的并模式疊置結(jié)果是對并模式疊置結(jié)果按圖B輪廓范圍進(jìn)行拾取,差模式下的疊置結(jié)果為圖A輪廓范圍以內(nèi)且圖B輪廓范圍以外疊置產(chǎn)生多邊形集合。 步驟4、構(gòu)建含有確定空間關(guān)系的疊置成果矢量多邊形圖形——對疊置成果矢量多邊形圖形的組成鏈段進(jìn)行拓?fù)潢P(guān)系編碼,通過對疊置成果矢量多邊形圖形面元的初始編碼,建立成果矢量多邊形圖形組成鏈段與其兩側(cè)多邊形面元的空間拓?fù)潢P(guān)系,以及成果矢量多邊形圖形面元與兩個疊置多邊形圖形面元的隸屬關(guān)系,構(gòu)成含有確定空間關(guān)系的疊置成果矢量多邊形圖形(參見圖4-i)。具體而言,以如下公式得出疊置成果矢量多邊形圖形C的多邊形初始編碼,從而正確構(gòu)建疊置成果矢量多邊形圖形C的鏈段與其兩側(cè)相鄰多邊形的拓?fù)潢P(guān)系
Code3= Code/( +1)+Code2(I)
式中=Code3為疊置成果矢量多邊形圖形C中多邊形的初始編碼,Code1為其所處矢量多邊形圖形A中多邊形的編碼,Code2為其所處矢量多邊形圖形B中多邊形的編碼,m為矢量多邊形圖形B包含的多邊形數(shù)目
初始編碼的公式基于以下分析得出設(shè)矢量多邊形圖形A包含的多邊形數(shù)目為/7,矢量多邊形圖形B包含的多邊形數(shù)目為心并約定一幅矢量多邊形圖形輪廓以外區(qū)域為O區(qū),理論上圖A與圖B疊置可能產(chǎn)生的不同疊置多邊形數(shù)目最大為(/7+1V ( +l),由于事先無法獲知哪些多邊形面元會在疊置分析制圖中出現(xiàn),因此必須為所有可能產(chǎn)生的多邊形編碼。例如圖4-b中待疊置矢量多邊形圖形B的多邊形數(shù)目為3,圖4-i中疊置成果矢量多邊形圖形C的初始編碼多邊形7是矢量多邊形圖形A的多邊形I與矢量多邊形圖形B的多邊形3疊合而成,滿足7=Γ 4+3,疊置成果矢量多邊形圖形C的初始編碼多邊形14是矢量多邊形圖形A的多邊形3與矢量多邊形圖形B的多邊形2疊合而成的,滿足14=34+2。采用公式(I)對兩次交叉混合疊置獲得的每條疊置成果矢量多邊形圖形C的組成鏈段進(jìn)行左右多邊形編碼。假設(shè)來自圖A的一條疊置產(chǎn)生鏈段的原始左右多邊形編碼分別為Ieftcode和該鏈段在圖B中所處多邊形的編碼為則該條新鏈段在圖C中的左右多邊形編碼分別采用以下公式計算
鏈段左多邊形編碼二Ieftcode' (jn+l) +polycode(2)
鏈段右多邊形編碼=ijn+l) +polycode(3)假設(shè)來自圖B的一條疊置產(chǎn)生鏈段的原始左右多邊形編碼分別是而和rigAicoofe,該鏈段在圖A中所處多邊形的編碼為/7o7_m £/e,則該條鏈段在圖C中的左右多邊形編碼分別采用以下公式計算
鏈段左多邊形編碼(jn+l) +leftcode(4)
鏈段右多邊形編碼=Ζ ο7_7 θ£/ / (jn+l) +rightcode(5)
例如圖4-e中來自矢量多邊形圖形A的鏈段/ττ左右多邊形編碼分別為I和2,它在與精度游程編碼圖形Bk疊置過程中被分解為/77和qr兩條鏈段,其中鏈段/77落在圖B的多邊形I中,其左右多邊形初始編碼分別為14+1=5和2' 4+1=9,鏈段#落在圖B的多邊形3中,其左右多邊形初始編碼分別為14+3=7和24+3=11 (參見圖4-i)??紤]到實(shí)際兩幅矢量多邊形圖形疊置所產(chǎn)生的多邊形數(shù)目要小于理論上的最大可能數(shù)目,有的初始編碼多邊形在疊置成果矢量多邊形圖形C中并不存在。此時需要對圖C 中實(shí)際存在的多邊形進(jìn)行連續(xù)編碼處理,即對圖C中所有鏈段的左右多邊形編碼進(jìn)行相應(yīng)更新,具體方法如下
第4-1步、遍歷疊置成果矢量多邊形圖形C的所有鏈段,通過對所述鏈段左右多邊形編碼的統(tǒng)計和增序排列,獲得所述疊置成果矢量多邊形圖形C中實(shí)際存在的初始編碼多邊形,建立初始編碼多邊形與連續(xù)編碼多邊形對照表(結(jié)合圖4-i和4-j參見表I的1、2兩列);
第4-2步、根據(jù)所述對照表中疊置成果矢量多邊形圖形C的各個多邊形的初始編碼,按照公式(6)計算其隸屬的矢量多邊形圖形A多邊形編碼,按照公式(7)計算其隸屬的矢量多邊形圖形B多邊形編碼,從而獲得疊置成果矢量多邊形圖形C的多邊形面元與矢量多邊形圖形A的多邊形面元和矢量多邊形圖形B的多邊形面元的隸屬關(guān)系列表(結(jié)合圖4-i和4-j參見表I的3、4兩列);
隸屬圖A多邊形編碼=圖C多邊形初始編碼/ (m+1) (6)
隸屬圖B多邊形編碼=圖C多邊形初始編碼%(m+l) (7)
公式(7)中符號%為取余數(shù)運(yùn)算符,m的含義同前。第4-3步、根據(jù)初始編碼多邊形與連續(xù)編碼多邊形對照表將疊置成果矢量多邊形圖形C的所有鏈段的左右多邊形編碼由初始編碼更新轉(zhuǎn)變?yōu)檫B續(xù)編碼(結(jié)合圖4-i和4-j參見表2)
表I初始編碼多邊形與連續(xù)編碼多邊形對照表
權(quán)利要求
1.一種復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,其特征在于包括以下步驟 步驟I、圖形轉(zhuǎn)換一分別將兩幅矢量多邊形圖形轉(zhuǎn)換成相應(yīng)的精度游程編碼圖形,所述精度游程編碼由游程表示區(qū)段起始位置的X坐標(biāo)和區(qū)段所處多邊形的編碼構(gòu)成; 步驟2、交叉混合疊置處理——分別以轉(zhuǎn)換得到的兩幅精度游程編碼圖形中的一幅為背景底圖,以交叉方式對另一幅矢量多邊形圖形鏈段進(jìn)行上覆遍歷疊置、跨多邊形檢測和分解,分別得到對應(yīng)兩幅疊置矢量多邊形圖形的兩組分解和未分解鏈段; 步驟3、篩選構(gòu)圖鏈段——按照預(yù)定疊置模式對疊置產(chǎn)生的兩組分解和未分解鏈段進(jìn)行篩選,篩選出符合疊置模式的合格鏈段作為疊置成果矢量多邊形圖形的組成鏈段; 步驟4、構(gòu)建含有確定空間關(guān)系的疊置成果矢量多邊形圖形——按預(yù)定規(guī)則對疊置成果矢量多邊形圖形的組成鏈段進(jìn)行左右多邊形區(qū)域編碼,構(gòu)建疊置成果矢量多邊形圖形組 成鏈段與其兩側(cè)多邊形面元的空間拓?fù)潢P(guān)系,以及疊置成果矢量多邊形圖形面元與所述兩幅矢量多邊形圖形面元的隸屬關(guān)系,構(gòu)成含有空間關(guān)系的疊置成果矢量多邊形圖形。
2.根據(jù)權(quán)利要求I所述的復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,其特征在于所述步驟I的具體步驟如下 第i-ι步、以預(yù)定的縱向精度間隔在疊置分析制圖矩形范圍內(nèi)布設(shè)水平掃描線,為每條水平掃描線設(shè)置一個記錄多邊形圖形鏈段穿越次數(shù)計數(shù)器;遍歷矢量多邊形圖形的各條鏈段,將所述鏈段穿越各掃描線的次數(shù)分別記錄到對應(yīng)的計數(shù)器中; 第1-2步、根據(jù)穿越次數(shù)計數(shù)器的計數(shù)結(jié)果建立分別對應(yīng)每條掃描線的游程編碼表,所述游程編碼表用于逐一記錄各條多邊形圖形鏈段穿越掃描線時交點(diǎn)的X坐標(biāo)及右側(cè)多邊形的編碼; 第1-3步、再次遍歷所述矢量多邊形的所有多邊形圖形鏈段,計算各條多邊形圖形鏈段穿越掃描線時交點(diǎn)的X坐標(biāo),連同交點(diǎn)右側(cè)的多邊形編碼逐一存儲到對應(yīng)的游程編碼表中; 第1-4步、以精度游程編碼表中記錄的X坐標(biāo)為關(guān)鍵字,分別對各條掃描線的精度游程編碼表做遞增排序,獲得對應(yīng)所述矢量多邊形圖形的精度游程編碼圖形。
3.根據(jù)權(quán)利要求2所述的復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,其特征在于所述步驟2進(jìn)行上覆多邊形鏈段跨背景底圖多邊形探測時,以預(yù)定探測步長依次判斷當(dāng)前處理鏈段中的相鄰探測節(jié)點(diǎn)落入背景底圖的多邊形區(qū)域是否發(fā)生改變,當(dāng)判斷到的相鄰兩個探測點(diǎn)落入背景底圖不同多邊形區(qū)域時,則在這兩個相鄰探測點(diǎn)的連線上采用折半逼近法計算跨越點(diǎn)坐標(biāo),并在跨越點(diǎn)處分解該鏈段,對多次跨越背景底圖不同多邊形的鏈段則實(shí)施多次分解,對從未跨越背景底圖不同多邊形的鏈段不進(jìn)行分解。
4.根據(jù)權(quán)利要求3所述的復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,其特征在于所述步驟3的預(yù)定疊置模式包括所述兩幅矢量多邊形圖形的并模式、所述兩幅矢量多邊形圖形的交模式、所述兩幅矢量多邊形圖形之一域內(nèi)的并模式、以及所述兩幅矢量多邊形圖形的差模式。
5.根據(jù)權(quán)利要求4所述的復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,其特征在于所述步驟4中的預(yù)定規(guī)則對疊置成果矢量多邊形圖形的組成鏈段進(jìn)行左右多邊形區(qū)域編碼的依據(jù)為以如下公式得出疊置成果矢量多邊形圖形的多邊形初始編碼Code3= Code/ (jn+l) +Code2式中=Code3為疊置成果矢量多邊形圖形中多邊形的初始編碼 Code1為其所處矢量多邊形圖形之一中多邊形的編碼 Code2為其所處矢量多邊形圖形另一中多邊形的編碼 m為其所處矢量多邊形圖形另一包含的多邊形數(shù)目。
6.根據(jù)權(quán)利要求5所述的復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,其特征在于所述步驟4還包括以下具體步驟 第4-1步、遍歷疊置成果矢量多邊形圖形的所有鏈段,通過對所述鏈段左右多邊形編碼的統(tǒng)計和增序排列,獲得所述疊置成果矢量多邊形圖形中實(shí)際存在的初始編碼多邊形,建立初始編碼多邊形與連續(xù)編碼多邊形對照表; 第4-2步、根據(jù)所述對照表中疊置成果矢量多邊形圖形存在的各個多邊形的初始編碼,按照以下(a)式計算其隸屬的矢量多邊形圖形之一的多邊形編碼,按照以下(b)式計算其隸屬的矢量多邊形圖形另一的多邊形編碼,獲得疊置成果矢量多邊形圖形與兩幅多邊形與矢量多邊形圖形的多邊形關(guān)系列表; 隸屬矢量多邊形圖形之一的多邊形編碼= 疊置成果矢量多邊形圖形的多邊形初始編碼/(m+1) (a) 隸屬矢量多邊形圖形另一的多邊形編碼= 疊置成果矢量多邊形圖形的多邊形初始編碼%(m+l) (b) 式中%為取余數(shù)運(yùn)算符 第4-3步、根據(jù)初始編碼多邊形與連續(xù)編碼多邊形對照表將疊置成果矢量多邊形圖形所有鏈段的左右多邊形編碼由初始編碼更新轉(zhuǎn)變?yōu)檫B續(xù)編碼。
全文摘要
本發(fā)明涉及一種復(fù)雜矢量多邊形圖形空間疊置分析制圖方法,屬于地理信息系統(tǒng)中的空間分析制圖和空間數(shù)據(jù)挖掘技術(shù)領(lǐng)域。該方法的步驟包括將兩幅矢量多邊形圖形轉(zhuǎn)換成精度游程編碼圖形;分別以其中一幅精度游程編碼圖形為背景底圖,以交叉方式對另一幅矢量多邊形圖形鏈段進(jìn)行上覆遍歷疊置、跨多邊形檢測和分解,得到分解和未分解鏈段;篩選出符合疊置模式的合格鏈段作為疊置成果矢量多邊形圖形的組成鏈段;構(gòu)建含有確定空間關(guān)系的疊置成果矢量多邊形圖形。本發(fā)明避免了矢量多邊形圖形之間直接疊置帶來的大量鏈段相交判斷和可能出現(xiàn)的誤判及遺漏,為有效建立新的拓?fù)潢P(guān)系創(chuàng)造了條件,提高了矢量多邊形圖形空間疊置分析制圖技術(shù)的可操作性、魯棒性和實(shí)用性。
文檔編號G06F17/50GK102902837SQ20121026071
公開日2013年1月30日 申請日期2012年7月25日 優(yōu)先權(quán)日2012年7月25日
發(fā)明者謝順平, 王結(jié)臣, 都金康, 趙書河 申請人:南京大學(xué)