亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?

文檔序號:7754948閱讀:439來源:國知局
專利名稱:一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?br> 技術(shù)領(lǐng)域
本發(fā)明涉及一種局域拓?fù)渲亟ǚ椒ā?
背景技術(shù)
近些年來,關(guān)于GIS空間數(shù)據(jù)庫的增量更新研究成果主要集中在框架思想設(shè)計(jì)、 空間匹配技術(shù),增量數(shù)據(jù)獲取方法等方面;在專題數(shù)據(jù)庫更新方面,國內(nèi)關(guān)于地籍?dāng)?shù)據(jù)庫的 增量更新也有許多研究成果。盡管增量更新是時(shí)空數(shù)據(jù)庫數(shù)據(jù)更新的必然發(fā)展趨勢,但目 前還處于初步研究階段;路網(wǎng)信息較其他專題數(shù)據(jù)(例如地地籍?dāng)?shù)據(jù))更要求現(xiàn)勢性,并且 路網(wǎng)數(shù)據(jù)增量更新設(shè)計(jì)到的因素較多,可供參考研究成果較少。早在80年代,空間關(guān)系理論問題就已提出,拓?fù)湫畔臻g數(shù)據(jù)分析和處理具有 重要意義,根據(jù)拓?fù)潢P(guān)系可以確定地理實(shí)體間的空間位置關(guān)系、便于空間要素查詢、有利于 地形的重構(gòu),特別是在網(wǎng)絡(luò)分析方面更顯優(yōu)勢。經(jīng)過二十多年的研究,形成了大量的空間拓?fù)淅碚摵头椒ɑ邳c(diǎn)集拓?fù)淅碚撎?出了四交模型對拓?fù)淠P偷陌l(fā)展具有重大推動作用,之后4交模型擴(kuò)充為9交模型;理論 的研究推動技術(shù)的革新,拓?fù)潢P(guān)系的重建研究一直是GIS的研究課題之一。在早期的地理 信息系統(tǒng)中,拓?fù)潢P(guān)系的建立通常采用手工賦值的方式進(jìn)行,但由于空間數(shù)據(jù)的復(fù)雜性,手 工方式需要大量的人力、物力,而且容易造成拓?fù)潢P(guān)系的錯誤表達(dá)。隨著左轉(zhuǎn)算法(右轉(zhuǎn)算 法)、QI算法的提出,使得自動搜索多邊形成為可能,于是自動構(gòu)建拓?fù)潢P(guān)系一度成為GIS 中研究的熱門。為了提高拓?fù)渲亟ㄐ剩路椒ㄐ滤悸凡粩嗟靡蕴岢?,例如通過分區(qū)思想 減少了空間數(shù)據(jù)的自動求交、結(jié)點(diǎn)匹配等計(jì)算工作量;基于方位角定義的多邊形自動構(gòu)建 方案;通過鄰接表法存儲路網(wǎng)數(shù)據(jù);將全局的矢量拓?fù)浞治鲛D(zhuǎn)化為單個格網(wǎng)范圍內(nèi)足夠少 的矢量線段求交過程,等等。綜上所述,拓?fù)錁?gòu)建由手工化發(fā)展到自動化,但實(shí)現(xiàn)效率(主要是指時(shí)間效率)一 直是拓?fù)渲亟ㄋ鉀Q的主要問題之一;借用數(shù)據(jù)結(jié)構(gòu)理論方法可以提高實(shí)現(xiàn)效率,但是 對大數(shù)據(jù)量而言,仍需較多時(shí)間。局域拓?fù)渲亟ㄊ侵冈诰钟蚍秶鷥?nèi)進(jìn)行空間實(shí)體的拓?fù)潢P(guān) 系構(gòu)造,并且與其他未變化區(qū)域保持拓?fù)湟恢滦?;路網(wǎng)局域拓?fù)渲亟ù蟠鬁p少了空間數(shù)據(jù) 的計(jì)算量,從而提高重建效率,但目前關(guān)于這方面的研究較少,而且沒有涉及關(guān)于局域拓?fù)?的相關(guān)模型。

發(fā)明內(nèi)容
本發(fā)明為了解決現(xiàn)有的導(dǎo)航路網(wǎng)全局拓?fù)錁?gòu)建技術(shù)效率低、耗時(shí)長的問題,提出 一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒ā!N用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?,具體過程如下 步驟一、根據(jù)原有的路網(wǎng)數(shù)據(jù),提取全局路網(wǎng)拓?fù)湫畔?,形成拓?fù)湫畔⑽募?br> 步驟二、在原有的路網(wǎng)數(shù)據(jù)基礎(chǔ)上,增加路網(wǎng)增量數(shù)據(jù),所述路網(wǎng)增量數(shù)據(jù)包括增加路 段數(shù)據(jù)和銷毀路段數(shù)據(jù);
6步驟三、根據(jù)路網(wǎng)增量數(shù)據(jù)確定路網(wǎng)變化的類型,并根據(jù)路網(wǎng)變化的類型確定局域拓 撲重建方案;
步驟四、根據(jù)步驟三獲得的路網(wǎng)變化的類型和相應(yīng)的局域拓?fù)渲亟ǚ桨?,修改步驟一 中的拓?fù)湫畔⑽募?,?shí)現(xiàn)局域拓?fù)渲亟?,進(jìn)而使得全局路網(wǎng)拓?fù)潢P(guān)系隨之更新。本發(fā)明利用路網(wǎng)增量數(shù)據(jù),通過增量更新方式更新路網(wǎng)信息,并利用維護(hù)局域拓 撲的手段保持路網(wǎng)更新后的拓?fù)潢P(guān)系一致性,效率高、同步性好,有利于路網(wǎng)的及時(shí)、快速 更新。適用于導(dǎo)航路網(wǎng)數(shù)據(jù)局域更新的拓?fù)渚S護(hù)。


圖1是本發(fā)明的一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒ǖ牧鞒虉D。圖2 至圖7是路網(wǎng)變化方式的示意圖;圖2為類型a路段的示意圖,圖3為類型b路段的示意 圖,圖4為類型c路段的示意圖,圖5為類型d路段的示意圖,圖6為類型e路段的示意圖, 圖7為類型f路段的示意圖。
具體實(shí)施例方式具體實(shí)施方式
一結(jié)合圖1說明本實(shí)施方式,一種用于導(dǎo)航路網(wǎng)增量更新的局域 拓?fù)渲亟ǚ椒?,具體過程如下
步驟一、根據(jù)原有的路網(wǎng)數(shù)據(jù),提取全局路網(wǎng)拓?fù)湫畔?,形成拓?fù)湫畔⑽募?步驟二、在原有的路網(wǎng)數(shù)據(jù)基礎(chǔ)上,增加路網(wǎng)增量數(shù)據(jù),所述路網(wǎng)增量數(shù)據(jù)包括增加路 段數(shù)據(jù)和銷毀路段數(shù)據(jù);
步驟三、根據(jù)路網(wǎng)增量數(shù)據(jù)確定路網(wǎng)變化的類型,并根據(jù)路網(wǎng)變化的類型確定局域拓 撲重建方案;
步驟四、根據(jù)步驟三獲得的路網(wǎng)變化的類型和相應(yīng)的局域拓?fù)渲亟ǚ桨福薷牟襟E一 中的拓?fù)湫畔⑽募?,?shí)現(xiàn)局域拓?fù)渲亟?,進(jìn)而使得全局路網(wǎng)拓?fù)潢P(guān)系隨之更新。
具體實(shí)施方式
二、本實(shí)施方式是對具體實(shí)施方式
一的進(jìn)一步說明,具體實(shí)施方式
一步驟一中所述的原有的路網(wǎng)數(shù)據(jù)包括路段集和結(jié)點(diǎn)集,結(jié)點(diǎn)集中的結(jié)點(diǎn)為對應(yīng)路段集中 路段的端點(diǎn);所述拓?fù)湫畔⑽募ńY(jié)點(diǎn)一路段拓?fù)湫畔⑽募吐范我唤Y(jié)點(diǎn)拓?fù)湫畔⑽?件;所述的結(jié)點(diǎn)一路段拓?fù)湫畔⑽募涗浗Y(jié)點(diǎn)連接的路段信息,包含字段有結(jié)點(diǎn)的ID標(biāo) 識號碼和結(jié)點(diǎn)的連接路段LINKLIST屬性信息,其中結(jié)點(diǎn)的連接路段LINKLIST屬性信息為 與所述結(jié)點(diǎn)連接的路段的ID標(biāo)識號碼;所述路段一結(jié)點(diǎn)拓?fù)湫畔⑽募涗浡范闻c結(jié)點(diǎn)的 對應(yīng)關(guān)系,包含字段有路段的ID標(biāo)識號碼、FNODE起始點(diǎn)信息和TNODE終止點(diǎn)信息;所述 FNODE起始點(diǎn)信息表示路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼,所述TNODE終止點(diǎn)信息表示 路段終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼。
具體實(shí)施方式
三、本實(shí)施方式是對具體實(shí)施方式
一或二中步驟一的進(jìn)一步說明, 步驟一中提取全局路網(wǎng)拓?fù)湫畔⒌木唧w過程如下
步驟一一、順序提取已知路段集中第一條路段,然后在結(jié)點(diǎn)集中搜索與該路段起始端 點(diǎn)和終止端點(diǎn)分別重合的結(jié)點(diǎn);將所述第一條路段的拓?fù)湫畔⒂涗浻诼范我唤Y(jié)點(diǎn)拓?fù)湮募?中,所述第一條路段的拓?fù)湫畔樵撀范蔚腎D標(biāo)識號碼、FNODE起始點(diǎn)信息和TNODE終止 點(diǎn)fn息;步驟一二、按照路段存儲順序提取已知路段集中第i條路段的拓?fù)湫畔?,i > 2 ; 步驟一三、重復(fù)執(zhí)行步驟一二,直到完成最后一條路段的拓?fù)湫畔⒂涗洝?br> 具體實(shí)施方式
四本實(shí)施方式是對具體實(shí)施方式
一或二中步驟一的進(jìn)一步說明, 步驟一中提取全局路網(wǎng)拓?fù)湫畔⒌木唧w過程如下
步驟一四、順序提取結(jié)點(diǎn)集中的第一個結(jié)點(diǎn),然后在路段集中搜索與該結(jié)點(diǎn)相交的 路段,并獲取相交路段的ID標(biāo)識號碼;將所述第一個結(jié)點(diǎn)的拓?fù)湫畔⒂涗浻诮Y(jié)點(diǎn)一路段 拓?fù)湫畔⑽募?,所述第一個結(jié)點(diǎn)的拓?fù)湫畔樵摻Y(jié)點(diǎn)的ID標(biāo)識號碼及該結(jié)點(diǎn)的連接路段 LINKLIST屬性信息;
步驟一五、按照結(jié)點(diǎn)存儲順序提取已知結(jié)點(diǎn)集中第i個結(jié)點(diǎn)的拓?fù)湫畔?,i^2; 步驟一六、重復(fù)執(zhí)行步驟一五,直到完成最后一個結(jié)點(diǎn)的拓?fù)湫畔⒂涗洝?br> 具體實(shí)施方式
五結(jié)合圖2至圖7說明本實(shí)施方式,本實(shí)施方式是對具體實(shí)施方式
一、二、三或四中步驟二的進(jìn)一步說明,步驟二中增路段數(shù)據(jù)和銷毀路段數(shù)據(jù)各分為六種類 型,所述六種類型中增量路段端點(diǎn)對應(yīng)結(jié)點(diǎn)在原結(jié)點(diǎn)集中的存在情況和與已有路段相交情 況如表1所示,
具體實(shí)施方式
六結(jié)合圖2至圖7說明本實(shí)施方式,本實(shí)施方式是對具體實(shí)施方式
五 中步驟三的進(jìn)一步說明,步驟三中根據(jù)路網(wǎng)變化的類型確定局域拓?fù)渲亟ǚ桨福ㄔ黾?路段類型的局域拓?fù)渲亟ǚ桨负弯N毀路段類型的局域拓?fù)渲亟ǚ桨?,其?類型a至類型f的增加路段類型的局域拓?fù)渲亟ǚ桨溉缦?br> 對于類型a路段、首先,在路段集中增加1條路段記錄,在結(jié)點(diǎn)集中增加所述路段的 起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn),并分別設(shè)置ID標(biāo)識號碼,其次,將所述路段的拓 撲信息增加到路段一結(jié)點(diǎn)拓?fù)湮募?,并將所述兩結(jié)點(diǎn)的拓?fù)湫畔⒃黾拥浇Y(jié)點(diǎn)一路段拓?fù)湮?件,所述兩結(jié)點(diǎn)的連接路段LINKLIST屬性信息設(shè)置為所述增加路段的ID標(biāo)識號碼;
對于類型b路段、首先,在路段集中增加3條路段記錄,所述3條路段為新增加的1條 路段、與新增加路段相交的原有的1條路段被新增加路段拆分成的2條新路段,并設(shè)置這3 條路段的ID標(biāo)識號碼;其次,在路段集中刪除與新增路段相交的原有路段,并在路段一結(jié) 點(diǎn)拓?fù)湮募袆h除被刪除路段的拓?fù)溆涗?;再次,在結(jié)點(diǎn)集中增加兩個結(jié)點(diǎn),并分別設(shè)置所 述兩個結(jié)點(diǎn)的ID標(biāo)識號碼為所述新增加的1條路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼和 路段終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼;最后,將所述3路段的拓?fù)湫畔⒃黾拥铰范我唤Y(jié)點(diǎn)拓?fù)湮募?,在結(jié)點(diǎn)一路段拓?fù)湮募性黾铀鰞蓚€結(jié)點(diǎn)的拓?fù)湫畔?,并修改被刪除路段兩 端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST屬性信息;
對于類型c路段、首先,在路段集中增加5條路段記錄,所述5路段為新增加的1條路 段、與新增加路段相交的原有的兩條路段分別被新增加路段拆分成的4條新路段,并設(shè)置 這5條路段的ID標(biāo)識號碼;其次,在路段集中刪除與新增路段相交的原有路段的所有信息, 并在路段一結(jié)點(diǎn)拓?fù)湮募袆h除被刪除路段的拓?fù)溆涗?;再次,在結(jié)點(diǎn)集中增加兩個結(jié)點(diǎn) 記錄,分別設(shè)置所述兩個結(jié)點(diǎn)的ID標(biāo)識號碼為所述新增加的1條路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn) 的ID標(biāo)識號碼和路段終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼;最后,將所述5條路段的拓?fù)湫畔?增加到路段一結(jié)點(diǎn)拓?fù)湮募诮Y(jié)點(diǎn)一路段拓?fù)湮募性黾铀鰞蓚€結(jié)點(diǎn)的拓?fù)湫畔?,?修改被刪除路段兩端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST屬性信息;
對于類型d路段、首先,在路段集中增加1條路段記錄,設(shè)置該路段的ID標(biāo)識號碼;其 次,在結(jié)點(diǎn)集中新增1個結(jié)點(diǎn)記錄,此結(jié)點(diǎn)為新增路段與原有路段未相交的新增路段端點(diǎn), 設(shè)置所述結(jié)點(diǎn)的ID標(biāo)識號碼為所述新增路段的終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼;最后,將 所述新增路段的拓?fù)湫畔⒃黾拥铰范我唤Y(jié)點(diǎn)拓?fù)湮募?,將所述新增結(jié)點(diǎn)的拓?fù)湫畔⒃黾拥?結(jié)點(diǎn)一路段拓?fù)湮募?,所述新增結(jié)點(diǎn)的連接路段LINKLIST屬性信息為所述新增路段的ID 標(biāo)識號碼,并將所述新增路段與原有路段的相交結(jié)點(diǎn)的連接路段LINKLIST屬性信息增加 所述新增路段的ID標(biāo)識號碼;
對于類型e路段、首先,在路段集中增加3條路段記錄,所述3條路段為新增加的1條路 段、與新增加路段相交的原有的1條路段被新增加路段拆分成的2條新路段,并設(shè)置這3條 路段的ID標(biāo)識號碼;其次,在路段集中刪除與新增加路段相交的原有路段的所有信息,并 在路段一結(jié)點(diǎn)拓?fù)湮募袆h除被刪除路段的拓?fù)溆涗?;再次,在結(jié)點(diǎn)集中增加1個結(jié)點(diǎn)記 錄,此結(jié)點(diǎn)為新增路段與原有路段相交于非結(jié)點(diǎn)的點(diǎn),設(shè)置ID標(biāo)識號碼為所述新增路段的 終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼;最后,將所述3路段的拓?fù)湫畔⒃黾拥铰范我唤Y(jié)點(diǎn)拓?fù)?文件,將所述結(jié)點(diǎn)的拓?fù)湫畔⒃黾拥浇Y(jié)點(diǎn)一路段拓?fù)湮募?,所述結(jié)點(diǎn)的連接路段LINKLIST 屬性信息為所述3條增加路段的ID標(biāo)識號碼,將相交結(jié)點(diǎn)的連接路段LINKLIST屬性信息 增加所述增加路段的ID標(biāo)識號碼,修改被刪除路段兩端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST 屬性信息;
對于類型f路段、首先,在路段集中增加1條路段記錄,設(shè)置該路段的ID標(biāo)識號碼,并 將該路段的拓?fù)湫畔⒃黾拥铰范我唤Y(jié)點(diǎn)拓?fù)湮募黄浯?,在結(jié)點(diǎn)一路段拓?fù)湮募袑⑾嘟?結(jié)點(diǎn)的連接路段LINKLIST屬性信息增加所述增加路段的ID標(biāo)識號碼; 類型a至類型f的銷毀路段類型的局域拓?fù)渲亟ǚ桨溉缦?br> 對于類型a路段,首先,在結(jié)點(diǎn)集中刪除銷毀路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng) 結(jié)點(diǎn)的所有信息,并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗洠黄浯?,在路段集中刪除 銷毀路段的路段記錄,并在路段一結(jié)點(diǎn)拓?fù)湮募袆h除所述銷毀路段的拓?fù)溆涗洠?br> 對于類型b路段,首先,在結(jié)點(diǎn)集中刪除銷毀路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng) 結(jié)點(diǎn)的所有信息,并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗?;其次,在路段集中刪除 3條路段記錄,所述3條路段為銷毀的1條路段、與銷毀路段相交的原有的2條路段,并在路 段一結(jié)點(diǎn)拓?fù)湮募袆h除所述3條路段的拓?fù)溆涗?;再次,在路段集中增?條路段記錄, 所述的1條路段為與銷毀路段相交的原有的2條路段合并成的1條新路段,并設(shè)置該條路段的ID標(biāo)識號碼,并在路段一結(jié)點(diǎn)拓?fù)湮募杏涗浰龅?條新路段的拓?fù)溆涗?;最后?在結(jié)點(diǎn)一路段拓?fù)湮募行薷乃龅?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié) 點(diǎn)的拓?fù)溆涗?,將所述?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段 LINKLIST屬性信息增加該新路段的ID標(biāo)識號碼并刪除被刪除路段的ID標(biāo)識號碼;
對于類型c路段,首先,在結(jié)點(diǎn)集中刪除銷毀路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng) 結(jié)點(diǎn)的所有信息,并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗?;其次,在路段集中刪除 5條路段記錄,所述5條路段為銷毀的1條路段、分別與銷毀路段兩端點(diǎn)相交的原有的4條 路段,并在路段一結(jié)點(diǎn)拓?fù)湮募袆h除所述的5條路段的拓?fù)溆涗?;再次,在路段集中增?兩條路段信息,所述的兩條路段為與銷毀路段兩端點(diǎn)相交的原有的4條路段合并成的2條 新路段,并設(shè)置該2條新路段的ID標(biāo)識號碼,并在路段一結(jié)點(diǎn)拓?fù)湮募杏涗浰龅?條 路段的拓?fù)溆涗?;最后,在結(jié)點(diǎn)一路段拓?fù)湮募行薷乃龅?條路段的起始端點(diǎn)對應(yīng)結(jié) 點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的拓?fù)溆涗?,將所述?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn) 對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST屬性信息增加該新路段的ID標(biāo)識號碼并刪除被刪除路段的 ID標(biāo)識號碼;
對于類型d路段,首先,在結(jié)點(diǎn)集中刪除1個結(jié)點(diǎn)記錄,此結(jié)點(diǎn)為銷毀路段與原有路 段未相交的點(diǎn),并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗洠浯?,在結(jié)點(diǎn)集中修改 銷毀路段與原有路段相交的結(jié)點(diǎn)記錄,在結(jié)點(diǎn)一路段拓?fù)湮募袑⑺鼋Y(jié)點(diǎn)的連接路段 LINKLIST屬性信息中刪除被刪除路段的標(biāo)識號碼;最后,在路段集中刪除銷毀路段的路段 記錄,并在路段一結(jié)點(diǎn)拓?fù)湮募袆h除所述的銷毀路段的拓?fù)溆涗洠?br> 對于類型e路段,首先,在節(jié)點(diǎn)集中刪除1個結(jié)點(diǎn)記錄,此結(jié)點(diǎn)為銷毀路段與原有路段 相交于非結(jié)點(diǎn)的點(diǎn),并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗?;其次,在路段集中刪 除3條路段記錄,所述3條路段為銷毀的1條路段、與銷毀路段相交的原有的2條路段,并 在路段一結(jié)點(diǎn)拓?fù)湮募袆h除所述的3條路段的拓?fù)溆涗?;再次,在路段集中增?條路 段記錄,所述的1條路段為與銷毀路段相交的原有的2條路段合并成的1條新路段,并設(shè)置 該條路段的ID標(biāo)識號碼,并在路段一結(jié)點(diǎn)拓?fù)湮募杏涗浰龅?條新路段的拓?fù)溆涗洠?最后,在結(jié)點(diǎn)一路段拓?fù)湮募行薷乃?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng) 結(jié)點(diǎn)的拓?fù)溆涗洠瑢⑺?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段 LINKLIST屬性信息中刪除相應(yīng)銷毀路段的ID標(biāo)識號碼并增加所述1條新增路段的ID標(biāo)識 號碼;
對于類型f路段,首先,在路段集中刪除銷毀路段的路段記錄,并在路段一結(jié)點(diǎn)拓?fù)湮?件中刪除相應(yīng)的拓?fù)溆涗?,其次,在結(jié)點(diǎn)一路段拓?fù)湮募行薷乃鲣N毀路段的起始端點(diǎn) 對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的拓?fù)溆涗?,將銷毀路段的ID標(biāo)識號碼在銷毀路段的起始 端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST屬性信息組成中刪除。結(jié)合圖2至圖7說明路網(wǎng)變化的類型確定局域拓?fù)渲亟ǚ桨?。根?jù)增加路段類型,相應(yīng)的局域拓?fù)渚S護(hù)方案以圖2至圖7中新增加路段 為 例闡述如下
類型a,首先在路段集中增加路段 的路段記錄,并設(shè)置該路段的ID為12,在結(jié)點(diǎn)集
10中新增兩結(jié)點(diǎn)記錄,ID設(shè)置分別為11、12 ;其次,在路段一結(jié)點(diǎn)拓?fù)湮募性黾釉撀范蔚耐?撲記錄,記錄ID、FN0DE和TNODE分別為12、11和12,在結(jié)點(diǎn)一路段拓?fù)湮募性黾咏Y(jié)點(diǎn)11 和結(jié)點(diǎn)12的拓?fù)溆涗?,記錄中LINKLIST屬性信息設(shè)置均為12 ;
類型b,首先在路段集中增加3條路段記錄,新增加的1條路段是路段( ,并設(shè)置該路 段的ID為12,拆分原路段②會生成兩條新的路段(其ID可設(shè)置為13,14),在結(jié)點(diǎn)集中增
加一個結(jié)點(diǎn),ID設(shè)置為11 ;其次刪除路段集中的路段②及其在拓?fù)湮募械耐負(fù)湫畔?’最
后,在路段一結(jié)點(diǎn)拓?fù)湮募性黾釉?條路段的拓?fù)溆涗?,并在結(jié)點(diǎn)一路段拓?fù)湮募性?加結(jié)點(diǎn)11的拓?fù)溆涗浖靶薷慕Y(jié)點(diǎn)2和結(jié)點(diǎn)3的LINKLIST屬性信息;
類型c,首先在路段集中增加5條路段記錄,新增加的1條路段是路段 ,并設(shè)置該路
段的ID為12,拆分原路段②會生成兩條新的路段(其ID可設(shè)置為13,14),拆分原路段(D
也會生成兩條新的路段(其ID可設(shè)置為15,16),在結(jié)點(diǎn)集中增加2個新結(jié)點(diǎn),ID設(shè)置分別 為11、12 ;其次刪除路段集中的路段②和路段③及其拓?fù)溆涗?,在路段一結(jié)點(diǎn)拓?fù)湮募?增加該5條路段的拓?fù)溆涗?;最后在結(jié)點(diǎn)一路段拓?fù)湮募性黾咏Y(jié)點(diǎn)11和結(jié)點(diǎn)12的拓?fù)?記錄并修改結(jié)點(diǎn)2、結(jié)點(diǎn)3和結(jié)點(diǎn)4的LINKLIST屬性信息;
類型d,首先在路段集中增加一條路段并設(shè)置該路段的ID為12,在結(jié)點(diǎn)集中新增
一個結(jié)點(diǎn)記錄,ID設(shè)置為11 ;其次,在路段一結(jié)點(diǎn)拓?fù)湮募性黾勇范?的拓?fù)溆涗?,?br> 錄FNODE和TNODE分別為3和11,在結(jié)點(diǎn)一路段拓?fù)湮募性黾咏Y(jié)點(diǎn)11的拓?fù)溆涗?,記?LINKLIST屬性信息為12、在結(jié)點(diǎn)3的LINKLIST屬性信息中增加12 ;
類型e,首先在路段集中增加3條路段記錄,新增加的1條路段是路段( ,并設(shè)置該路 段的ID為12,拆分原路段⑤會生成兩條新的路段(其ID可設(shè)置為13,14),在結(jié)點(diǎn)集中增
加結(jié)點(diǎn)U ;其次刪除路段集中路段⑤及拓?fù)湫畔?;最后,在路段一結(jié)點(diǎn)拓?fù)湮募性黾釉?br> 3條路段的拓?fù)溆涗?,并在結(jié)點(diǎn)一路段拓?fù)湮募性黾咏Y(jié)點(diǎn)11的拓?fù)溆涗浖靶薷慕Y(jié)點(diǎn)3、結(jié) 點(diǎn)5和結(jié)點(diǎn)6的LINKLIST屬性信息的構(gòu)成;
類型f,首先在路段集中增加一條路段 ,命名該路段的ID為12,在路段一結(jié)點(diǎn)拓?fù)?br> 文件中增加該路段的拓?fù)溆涗?,記錄FNODE和TNODE分別為3和5 ;其次在結(jié)點(diǎn)一路段拓?fù)?文件將結(jié)點(diǎn)將3和結(jié)點(diǎn)5的LINKLIST屬性信息中增加12。
根據(jù)銷毀路段類型,相應(yīng)的局域拓?fù)渚S護(hù)方案以圖2至圖7中銷毀路段 為例闡 述如下
類型a,首先在結(jié)點(diǎn)集中刪除結(jié)點(diǎn)11和結(jié)點(diǎn)12的信息及其拓?fù)溆涗洠浯卧诼范渭?br> 刪除路段( 的及其拓?fù)溆涗洠?br> 類型b,首先在結(jié)點(diǎn)集中刪除結(jié)點(diǎn)11和結(jié)點(diǎn)12的信息及其拓?fù)溆涗?,其次在路段?中刪除結(jié)點(diǎn)12連接的3條路段及其拓?fù)溆涗?,然后在路段集中增加路?及其拓?fù)溆涗?(FNODE 2 ;TNODE :3),最后在結(jié)點(diǎn)一路段拓?fù)湮募行薷慕Y(jié)點(diǎn)2和結(jié)點(diǎn)3的LINKLIST屬性 fn息;
類型C,首先在結(jié)點(diǎn)集中刪除結(jié)點(diǎn)11和結(jié)點(diǎn)12的信息及其拓?fù)溆涗?,其次在路段集?刪除結(jié)點(diǎn)11連接的2條路段和結(jié)點(diǎn)12連接的2條路段及其拓?fù)溆涗洠缓笤诼范渭性?加兩條路段,分別為路段2 (FNODE 2 ;TNODE :3)、路段3 (FNODE 2 ;TNODE 4)并在路段一 結(jié)點(diǎn)拓?fù)湮募性黾勇范?和路段3的拓?fù)溆涗?,最后在結(jié)點(diǎn)一路段拓?fù)湮募行薷慕Y(jié)點(diǎn) 2、結(jié)點(diǎn)3和結(jié)點(diǎn)4的LINKLIST屬性信息;
類型d,首先在結(jié)點(diǎn)集中刪除結(jié)點(diǎn)11的相關(guān)信息及其拓?fù)溆涗?,并修結(jié)點(diǎn)3的
LINKLIST屬性信息,其次在路段集中刪除路段 的信息及其拓?fù)溆涗洠?br> 類型e,首先刪除結(jié)點(diǎn)11的信息記錄及其拓?fù)溆涗?,其次刪除路段集中的路段(0、及
與結(jié)點(diǎn)11連接的路段的信息及其拓?fù)溆涗?,然后在路段集中增加一條路段,增加路段的拓 撲記錄中設(shè)置TNODE和FNODE分別為5、6,最后在結(jié)點(diǎn)一路段拓?fù)湮募行薷慕Y(jié)點(diǎn)3、結(jié)點(diǎn) 5和結(jié)點(diǎn)6的LINKLIST屬性信息;
類型f,首先在路段集中刪除路段 及其拓?fù)溆涗?,然后在結(jié)點(diǎn)一路段拓?fù)湮募袑?br> 結(jié)點(diǎn)3和結(jié)點(diǎn)5的LINKLIST屬性信息中刪除ID 12。設(shè)計(jì)基于增量變化類型的路網(wǎng)重建實(shí)現(xiàn)算法。路網(wǎng)增量更新涉及兩個部分,路網(wǎng)圖形的更新及局域拓?fù)渲亟ā?1)增加路段的路網(wǎng)重建算法
算法依據(jù)新增一條路段與原路段集和原結(jié)點(diǎn)集的交點(diǎn)個數(shù)進(jìn)行區(qū)分,兩者的對應(yīng)關(guān)系 如表2所示。 表2中6種增加路段類型的實(shí)現(xiàn)需要相應(yīng)函數(shù)模塊的支持,本發(fā)明中設(shè)計(jì)的相關(guān) 函數(shù)模塊如下
1)AddNodeRoadTopO模塊,根據(jù)已獲得的結(jié)點(diǎn)拓?fù)湫畔?結(jié)點(diǎn)的ID,結(jié)點(diǎn)的 LINKLIST屬性信息),向結(jié)點(diǎn)一路段拓?fù)湮募芳右粭l拓?fù)湫畔?br> 2)UpdateNodeRoadTop ()模塊,基于結(jié)點(diǎn)的ID,在已知增加路段的ID或銷毀路段 的ID或該結(jié)點(diǎn)的所有連接路段的ID情況下,更新該結(jié)點(diǎn)的LINKLIST屬性信息;
3)UpdateNodeRoadTopbyPoint ()模塊,更新與給定點(diǎn)具有相同空間坐標(biāo)的結(jié)點(diǎn) 的拓?fù)湫畔ⅲ?br> 4)AddRoadNodeTopO模塊,根據(jù)已獲得的路段拓?fù)湫畔?路段的ID、起始端點(diǎn)對 應(yīng)結(jié)點(diǎn)的ID和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID),向路段一結(jié)點(diǎn)拓?fù)湮募芳右粭l拓?fù)湫畔ⅲ?br> 5)DeleteRoadNodeTop ()模塊,基于給定路段的ID,將給定路段的拓?fù)湫畔⒃谕?撲文件中刪除;
6)AddRoadNodeTopbyRoadO模塊,向路段一結(jié)點(diǎn)拓?fù)湮募性黾咏o定路段的拓 撲信息,已知給定路段ID,搜索該路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)ID和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)ID,向 拓?fù)湮募刑砑釉撀范蔚耐負(fù)湫畔ⅲ?br> 7)AddNewRoadO模塊,完成向路段集中添加一條路段;
8)AddNewTwoNodes ()模塊,已知給定路段,將其起始端點(diǎn)對應(yīng)結(jié)點(diǎn)、終止端點(diǎn)對 應(yīng)結(jié)點(diǎn)添加到原結(jié)點(diǎn)集,并調(diào)用AddNodeRoadTopO模塊完成向結(jié)點(diǎn)一路段拓?fù)湮募性?加記錄;
9)AddNewOneNode ()模塊,將給定結(jié)點(diǎn)添加到原結(jié)點(diǎn)集,并調(diào)用 AddNodeRoadTopO模塊完成向結(jié)點(diǎn)一路段拓?fù)湮募性黾佑涗洠?br> 10)SplitPolyLineRoadO模塊,利用兩條線段的交點(diǎn)對其中的一條線段進(jìn)行 拆分,將拆分后的2條新路段添加到路段集,并調(diào)用AddNewOneNodeO增加交點(diǎn),調(diào)用 AddRoadNodeTopbyRoadO將通過拆分得到的2條新路段向路段一結(jié)點(diǎn)拓?fù)湮募砑觾蓷l fn息;
11)SplitRoadbyPointO模塊,通過給定的結(jié)點(diǎn)將給定的路段進(jìn)行拆分,實(shí)現(xiàn)算法類 似于 SplitPolyLineRoadO 模塊。① 類型a增加路段方式的實(shí)現(xiàn)算法
調(diào)用AddNewRoadO將新增路段添加到路段集中;調(diào)用AddNewTwoNodes ()將新增兩個
13結(jié)點(diǎn)添加到結(jié)點(diǎn)集,完成相應(yīng)局域拓?fù)渚S護(hù);調(diào)用AddRoadNodeTopO完成新增路段的拓?fù)?信息記錄。② 類型b增加路段方式的實(shí)現(xiàn)算法
調(diào)用AddNewRoadO將新增路段添加到路段集中;調(diào)用SplitPolyLineRoad(),完成 與新增路段相交路段的拆分;調(diào)用AddNewOneNodeO完成新增路段與原路段未相交端點(diǎn) 對應(yīng)結(jié)點(diǎn)的添加及拓?fù)渚S護(hù);調(diào)用UpdateNodeRoadTopbyPointO完成與新增路段相交的 原路段端點(diǎn)對應(yīng)結(jié)點(diǎn)的拓?fù)涓?;最后在路段集中刪除與新增路段相交的原路段,并調(diào)用 DeleteRoadNodeTop ()刪除相應(yīng)的拓?fù)湫畔?;調(diào)用AddRoadNodeTop ()完成新增路段的拓?fù)?信息記錄。③ 類型c增加路段方式的實(shí)現(xiàn)算法
調(diào)用AddNewRoadO將新增路段添加到路段集中;分別調(diào)用兩次SplitPolyLineRoad() 完成與新增路段相交的2條原路段的拆分;調(diào)用UpdateNodeRoadTopbyPoint ()完成 相交路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的拓?fù)渚S護(hù);刪除相交路段,并調(diào)用 DeleteRoadNodeTop ()刪除相應(yīng)的拓?fù)湫畔ⅲ徽{(diào)用AddRoadNodeTop ()完成新增路段的拓?fù)?信息記錄。④ 類型d增加路段方式的實(shí)現(xiàn)算法
調(diào)用AddNewRoadO將新增路段添加到路段集中;判斷新增路段與原路段集的交點(diǎn) 是新增路段的起點(diǎn)還是終點(diǎn),然后調(diào)用AddNewOneNodeO完成新增路段端點(diǎn)(非交點(diǎn))對 應(yīng)結(jié)點(diǎn)的添加;調(diào)用UpdateNodeRoadTop O完成交點(diǎn)對應(yīng)結(jié)點(diǎn)的拓?fù)湫畔⒕S護(hù);調(diào)用 AddRoadNodeTop ()完成新增路段的拓?fù)湫畔⒂涗洝"?類型e增加路段方式的實(shí)現(xiàn)算法
調(diào)用AddNewRoadO將新增路段添加到路段集中;獲取新增路段與原路段集中路段的 交點(diǎn)對應(yīng)的結(jié)點(diǎn),調(diào)用UpdateNodeRoadTop ()完成該結(jié)點(diǎn)的拓?fù)渚S護(hù);通過比較新增路段 與相交路段的起始端點(diǎn)和終止端點(diǎn)坐標(biāo),確定新增結(jié)點(diǎn)(非交點(diǎn)對應(yīng)結(jié)點(diǎn))和被拆分路段, 調(diào)用SplitRoadbyPointO完成路段拆分;刪除被拆分路段,并調(diào)用DeleteRoadNodeTop () 刪除其相應(yīng)的拓?fù)溆涗?;調(diào)用UpdateNodeRoadTopbyPointO將被拆分路段從起始端點(diǎn)對 應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的LINKLIST屬性信息中刪除;調(diào)用AddRoadNodeTopO完成新 增路段的拓?fù)湫畔⒂涗?。?類型f增加路段方式的實(shí)現(xiàn)算法
調(diào)用AddNewRoadO將新增路段添加到路段集中;獲取新增路段與原路段的2 個交點(diǎn)對應(yīng)的結(jié)點(diǎn),調(diào)用UpdateNodeRoadTop O分別完成2個結(jié)點(diǎn)拓?fù)渚S護(hù);調(diào)用 AddRoadNodeTop ()完成新增路段的拓?fù)湫畔⒂涗?。銷毀路段算法設(shè)計(jì)的依據(jù)是銷毀路段的起始端點(diǎn)和終止端點(diǎn)與原路段集中路段 的相交個數(shù),共有4種情況,即銷毀路段的起始端點(diǎn)和終止端點(diǎn)與原路段集中相交的路段 數(shù)量分別為 0、1、2、>2,則形成 10 中可能情況,即{(0,0),(0,1),(0,2),(0,>2),(1,1),(1, 2),(1,>2),(2,2), (2,>2),(>2, >2) };分析10中操作對路網(wǎng)圖形和拓?fù)涞母淖?,獲得銷 毀路段的起始端點(diǎn)和終止端點(diǎn)均對應(yīng)3種基本的操作,即當(dāng)銷毀路段端點(diǎn)與原路段集中相 交的路段數(shù)量為0,1或>2,和2三種情況。銷毀路段的路網(wǎng)維護(hù)算法涉及到3個子函數(shù)模 塊1)DeleteNodeRoadTop ()模塊,基于結(jié)點(diǎn)ID將給定結(jié)點(diǎn)的拓?fù)湫畔⒃谕負(fù)湮?件中刪除;
2)DeleteSingNode ()模塊,搜索給定結(jié)點(diǎn)的ID,將該結(jié)點(diǎn)刪除,并調(diào)用 DeleteNodeRoadTop ()在拓?fù)湮募袆h除該結(jié)點(diǎn)的拓?fù)湫畔ⅲ?br> 3)UnionRoads ()模塊,將2條路段合并為1條路段并添加拓?fù)湫畔?,將原來? 條路段從路段集中刪除并在拓?fù)湮募袆h除其相應(yīng)的拓?fù)湫畔?。?當(dāng)銷毀路段端點(diǎn)與原路段集中相交的路段數(shù)量為O情況下的路網(wǎng)增量更 新;
調(diào)用DeleteSingNodeO將獨(dú)立結(jié)點(diǎn)刪除,并將相應(yīng)的拓?fù)湫畔h除。② 當(dāng)銷毀路段端點(diǎn)與原路段集中相交的路段數(shù)量為1或者大于2情況下的路 網(wǎng)增量更新;
更新被銷毀路段端點(diǎn)對應(yīng)的結(jié)點(diǎn)的拓?fù)湫畔?,調(diào)用UpdateNodeRoadTopbyPoint ()完成。③ 當(dāng)銷毀路段端點(diǎn)與原路段集中相交的路段數(shù)量為2情況下的路網(wǎng)增量更 新;
首先調(diào)用UnionRoadsO完成路段的合并,其次調(diào)用DeleteSingNodeO將對應(yīng)結(jié)點(diǎn)從 結(jié)點(diǎn)集中刪除,并刪除相應(yīng)的拓?fù)湫畔?。上?個操作均是對銷毀路段端點(diǎn)對應(yīng)結(jié)點(diǎn)及其連接路段的操作,除此之 外,還需要將銷毀路段從路段集中刪除,并將其拓?fù)湫畔穆范我唤Y(jié)點(diǎn)拓?fù)湮募袆h除。有益成果本發(fā)明能夠提高路網(wǎng)增量更新及拓?fù)潢P(guān)系維護(hù)的效率,為路網(wǎng)快速更 新提供了技術(shù)支持。局域拓?fù)渚S護(hù)相比全局式拓?fù)涓?,時(shí)間效率得到很大提高,其提高程 度取決于增量路段的數(shù)量與路網(wǎng)數(shù)量總量;當(dāng)路網(wǎng)數(shù)據(jù)增量越大、增量路段數(shù)量越少時(shí),局 域拓?fù)渲亟〞r(shí)間效率越高。將本發(fā)明應(yīng)用于車載試驗(yàn)系統(tǒng)
1、試驗(yàn)系統(tǒng)車載導(dǎo)航數(shù)據(jù)中心端采用IBM塔式服務(wù)器(8核心,主頻2. 0GHz,8G內(nèi) 存,146G 硬盤),操作系統(tǒng) Windows2003 Server,利用 ArcGIS 的 ArcEngine 在 Visual Studio2005環(huán)境下進(jìn)行路網(wǎng)增量更新的局域拓?fù)渲亟ㄩ_發(fā)。路網(wǎng)試驗(yàn)數(shù)據(jù)為廣州市2008 年導(dǎo)航電子地圖(Shapefile格式),共有路段73521條;路網(wǎng)增量數(shù)據(jù)選擇在各種增加路段 類型及銷毀路段類型下數(shù)量為1條、10條及100條路段。2、編寫函數(shù)模塊提取路網(wǎng)拓?fù)湫畔?,結(jié)點(diǎn)一路段拓?fù)湫畔⑻崛〉闹饕惴ㄈ缦拢?路段一結(jié)點(diǎn)拓?fù)湫畔⑻崛〉膶?shí)現(xiàn)算法類似于結(jié)點(diǎn)一路段拓?fù)湫畔⑻崛∷惴āFeatNodeselect = (IFeatureSelection)pNodeFeatLyr; pFeatNodeselect. SelectFeatures (null, esriSelectionResultEnum.
esriSeIectionResultNewj false);
pSelNodeSet = pFeatNodeselect. SelectionSet; pSelNodeSet. Search(null, true, out pNodeICursor); pFeatNodeCursor = (IFeatureCursor)pNodeICursor;
ptempNodeFeature = pFeatNodeCursor· NextFeature () ;//順序獲取一個結(jié)點(diǎn) while (ptempNodeFeature != null). Geometry = ptempNodeFeature. Shape; pFilter. GeometryField = 〃Shape〃;
pFilter. SpatialRel = esriSpatialRelEnum. esriSpatialRelTouches; pFeatRoadselect = (IFeatureSelection)pRoadFeatLyr; pFeatRoadselect. SelectFeatures(pFilter, esriSeIectionResuitNew,
false);
pSelRoadSet = pFeatRoadselect. SelectionSet; pSelRoadSet. Search (null, true, out pRoadICursor); pFeatRoadCursor = (IFeatureCursor)pRoadICursor; ptempRoadFeature = pFeatRoadCursor. NextFeature(); while(ptempRoadFeature !=null) { //在內(nèi)存中存儲結(jié)點(diǎn)-路段拓?fù)潢P(guān)系
if (NodeArrays[i]. Linglist !=null)
{
NodeArrays[i]. Linglist = NodeArrays[i]. Linglist + 〃,〃 + System. Convert. ToString(ptempRoadFeature. get—Value(pIDRoad));
ι
else {
NodeArrays[i]. Linglist = Convert.ToString(ptempRoadFeature. get—Value(pIDRoad));
ι
ptempRoadFeature = pFeatRoadCursor. NextFeature();
ι
ptempNodeFeature = pFeatNodeCursor. NextFeature(); i++;
}
//構(gòu)造.tpn文件并寫入拓?fù)湫畔?br> FileStream topNodeRoad = new FiIeStream(strNodeRoadPath,F(xiàn)ileMode. Create); StreamWriter WtopNodeRoad = new StreamWriter(topNodeRoad); WtopNodeRoad. WriteLine("ID〃 + 〃\t〃 + 〃LINGLIST");
for (i = 0; i < numNode; i++)
{
WtopNodeRoad. WriteLine(Convert. ToString (NodeArrays[i]. ID) +〃\t〃+NodeArrays[i]. Linglist);
}
WtopNodeRoad. CloseO ; topNodeRoad. CloseO ;
3、編寫基于增量類型的拓?fù)渚S護(hù)所涉及的模塊算法
1)AddNodeRoadTop ()模塊 private void AddNodeRoadTop()
{ //獲取結(jié)點(diǎn)拓?fù)湫畔?br> StrNodeRoadRaltion = Convert. ToString (objID) + 〃\t〃; StrNodeRoadRaltion = StrNodeRoadRaltion + objList; Il向拓?fù)湮募刑砑有畔?br> StreamWriter sw = File. AppendText(strNodeRoadPath); sw. WriteLine(strNodeRoadRaltion); sw. Flush O ; sw. Close ();
ι
2)UpdateNodeRoadTop ()模塊
private void UpdateNodeRoadTop(int singAddDelete)
{
topNodeRoad = new FiIeStream(strNodeRoadPath, FileMode. Open); StreamReader sr = new StreamReader(topNodeRoad, Encoding. GetEncoding(O)); strline = sr. ReadLine ();
StringBuilder sb = new StringBuilder();
while (strline != null && strline != 〃〃)
{
if (strID == strline.Substring(0,strline. IndexOf(〃\t〃))) { //分三種情況修改結(jié)點(diǎn)的LINGLIST sb. Append(strline + 〃\r\n〃);
strline = sr. ReadLine ();
ι
else
{
sb. Append(strline + 〃\r\n〃); strline = sr. ReadLine ();
ι ι
//重新填充拓?fù)湮募?br> sr. Close () ; topNodeRoad. Close ();
FileStream fsi = new FileStream(strNodeRoadPath, FiIeMode· Create,
17FileAccess. Write);
StreamWriter sw = new StreamWriter(fsl); sw. Write (sb. ToString ()); sw. Close ();
ι
3)DeleteNodeRoadTop ()模塊 private void DeleteNodeRoadTop()
{ Il打開拓?fù)湮募?,獲取一條記錄
while (strline != null && strline != 〃〃)
{
if (strID == strline.Substring(0,strline.IndexOf(〃\t〃))) strline = sr. ReadLine ();
else {
sb.Append (strline + 〃\r\n〃); strline = sr. ReadLine ();
ι
ι
//重新填充拓?fù)湮募?br> ι
4)UpdateNodeRoadTopbyPoint ()模塊
private void UpdateNodeRoadTopbyPoint()
{
//基于空間位置搜索給定點(diǎn)在結(jié)點(diǎn)集中的ID //基于空間位置搜索路段集中與給定點(diǎn)相交的路段的ID pBNFeature2 = pFeatBNCursor. NextFeature () ; // 獲取一條相交路段 while (pBNFeature2!=null)
{
if (singAddDelete==2) //給定點(diǎn)的連接路段中減少了給定路段
{
if (Convert. ToString(pBNFeature2. get—Value(pIDRoad)) != objList) strTemp = strTemp + Convert. ToString(pBNFeature2. get_Value(pIDRoad)) +
>j
ι
else
strTemp = strTemp + Convert. ToString(pBNFeature2. get—Value(pIDRoad)) +
>j
pBNFeature2 = pFeatBNCursor. NextFeature();
ι//調(diào)用已知更新結(jié)點(diǎn)的ID號和更新內(nèi)容情況下的更新結(jié)點(diǎn)一路段拓?fù)湮募K完成 拓?fù)渚S護(hù)
UpdateNodeRoadTop(3);
ι
5)AddRoadNodeTop ()模塊實(shí)現(xiàn)算法類似于 AddNodeRoadTop ()模塊
的實(shí)現(xiàn)算法。6)DeleteRoadNodeTop ()模塊實(shí)現(xiàn)算法類似于 DeleteNodeRoadTop ()模塊的實(shí)現(xiàn)算法。7)AddRoadNodeTopbyRoad ()模塊 private void AddRoadNodeTopbyRoad()
{ //獲取給定路段(polyline)的起始端點(diǎn)和終止端點(diǎn)StartPoint、EndPoint //搜索起始點(diǎn)和終點(diǎn)對應(yīng)的結(jié)點(diǎn)集中的結(jié)點(diǎn)
objFnode = Convert. ToDouble(pBNFeature. get_Value(pIDNode)); objTnode = Convert· ToDouble(pBNFeature· get—Value(pIDNode));
AddRoadNodeTop () ;//調(diào)用函數(shù)模塊,完成添加拓?fù)湫畔?br> }
8)AddNewRoad ()模塊
private void AddNewRoad()
{
IFeatureCursor pFeatNewRoadCursor = tFeatClsNewRoad. Search(null, false); IFeature pNewRoadFeature = pFeatNewRoadCursor. NextFeature () ; // 獲取新增路

while (pNewRoadFeature !=nu11)
{ pFeatrue. Shape = pNewRoadFeature. Shape; Il添加屬性信息
pFeatrue. set_Value(pIDRoad, pNewRoadFeature. get_Value(pIDRoad)); tFeatureCursor. InsertFeature (tFeatureBuffer) ;//在原路段集內(nèi)存中添

pNewRoadFeature = pFeatNewRoadCursor. NextFeature () ; // 獲取下一條新路段
}
tFeatureCursor. FlushO ;//將新增路段寫入原圖層數(shù)據(jù)集
}
9)AddNewTwoNodes ()模塊
private void AddNewTwoNodes()
{
pNodeFeatrue. Shape = pBRStartPoint ;//±曾力口路段的起點(diǎn) if (boolNewNode)//存在新增結(jié)點(diǎn)集 { //獲取新增結(jié)點(diǎn)集中被增結(jié)點(diǎn)實(shí)體 Il設(shè)置新增結(jié)點(diǎn)屬性信息pNodeFeatrue. set_Value(pIDNode, ρNNFeature. get_Value(pIDNode));
Il獲取新增結(jié)點(diǎn)ID,用于增加結(jié)點(diǎn)一路段拓?fù)湫畔?objID = Convert· ToDouble(pNNFeature· get—Value(pIDNode));
ι
else
{ Il設(shè)置新增結(jié)點(diǎn)屬性信息
pNodeFeatrue. set—Value(pIDNode, tFeatClsBaseNode. FeatureCount(null)
+ 1);
objID = Convert. ToDouble(tFeatClsBaseNode. FeatureCount(null) + 1);
ι
tNodeFeatCursor. InsertFeature(tNodeFeatBuffer);
Il如果該結(jié)點(diǎn)只連接一條路段,則獲取該結(jié)點(diǎn)的LINKLIST屬性信息
if (boolSingle)objList=Convert. ToString(pNewRoadFeature.
get—Value(pIDRoad));
//調(diào)用函數(shù)模塊完成向結(jié)點(diǎn)一路段拓?fù)湮募性黾佑涗?br> AddNodeRoadTop(); //增加路段終點(diǎn)的添加方式和拓?fù)渚S護(hù)類似于增加路段的起點(diǎn) tNodeFeatCursor. FlushO ;
ι
10)AddNewOneNode ()模塊實(shí)現(xiàn)算法類似于AddNewTwoNodes ()模塊的實(shí)現(xiàn)算法。 11)SplitPolyLineRoad()模塊
private void SplitPolyLineRoad()
{
//獲取增加路段與原路段集中路段的交點(diǎn) pPointCollection= (IPointCollection)pTopo. Intersect (pBRFeature. Shape, esriGeometryDimension. esriGeometryODimension);
plnterPoint = pPointCollection. get—Point(0); //拆分路段
IPolycurve pPolycurve = (IPolycurve)pBRFeature. Shape;
pPolycurve.SplitAtPoint (plnterPoint, projectPoint, createPart,out isSplitted, out newPartlndex, out newSegmentIndex); //存儲拆分路段
IGeometryColIection pGeometryColIection = (IGeometryColIection) pPolycurve;
for (int i = 0; i < pGeometryCollection. GeometryCount; i++) { IGeometryCollection pline = new PolylineClass ();
IGeometry pGeo = pGeometryCollection. get—Geometry(i); pline. AddGeometries(1, ref pGeo);
20pFeatrue. Shape = (IPolyline)pline; Il并獲得拆分所得2條路段的起始端點(diǎn)和終止端點(diǎn)
//設(shè)置拆分所得路段的屬性信息以及交點(diǎn)所連接的路段的ID (即2條拆分所得路
段)
teatureCursor. InsertFeature(tFeatureBuffer);
ι
AddNewOneNode () ; //增加交點(diǎn),并完成向結(jié)點(diǎn)-路段拓?fù)湮募砑右粭l信息 AddRoadNodeTopbyRoadO ; Il通過拆分后的路段向路段_結(jié)點(diǎn)拓?fù)湮募砑有畔?br> tNodeFeatCursor. FlushO ;
}
12)SplitRoadbyPointO 模塊實(shí)現(xiàn)算法類似于 SplitPolyLineRoad()模塊
的實(shí)現(xiàn)算法。 13)DeleteSingNode ()模塊
private void DeleteSingNode()
{ //搜索給定點(diǎn)在結(jié)點(diǎn)中對應(yīng)的結(jié)點(diǎn)實(shí)體,獲取ID,并將其刪除 IQueryFilter pQueryFilter = new QueryFilterClass(); pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = 〃ID_=〃 + myFeature.get_Value (pIDNode). ToStringO ;
IFeatureCursor pDeleteCursor = pFeatLyr. FeatureClass. Update(pQueryFilter, false);
IFeature pDeleteFeature = pDeleteCursor. NextFeatureO ; objID = Convert. ToDouble(myFeature. get—Value(pIDNode)); pDeleteCursor. DeleteFeature();
DeleteNodeRoadTopO ;//調(diào)用模塊進(jìn)行該結(jié)點(diǎn)拓?fù)湫畔h除
}
14)UnionRoads ()模塊
private void UnionRoads()
{ Il 獲取 2 條路段 IPolycurve pPolycurvel、IPolycurve pPolycurve2
Il進(jìn)行合并,并添加到數(shù)據(jù)集 ITopologicalOperator pTopo = pPolycurvel as ITopologicalOperator; pTopo. Simplify ();
IGeometry pGeometry = pTopo. Union ((IGeometry)pPolycurve2); pFeatrue. Shape = pGeometry;
pFeatrue. set—Value (pIDRoad,pBRFeature. get—Value (pIDRoad)) ; // 設(shè)置屬性 tFeatureCursor. InsertFeature(tFeatureBuffer); Il刪除原有的2條路段
DeleteRoadNodeTop () ;//刪除原來2條路段的拓?fù)湫畔?br> UpdateNodeRoadTopbyPoint () ;//更新合并路段的兩個端點(diǎn)的拓?fù)湫畔?,即在連接路段中刪除原來2條路段的ID,增加合并路段的ID
AddRoadNodeTopO ;//向路段一結(jié)點(diǎn)拓?fù)湮募性黾雍喜⒙范蔚耐負(fù)湫畔?br> }
3、編寫增加路段和銷毀路段的算法實(shí)現(xiàn),其中路網(wǎng)增量更新的操作調(diào)用上述函數(shù)模 塊完成,對應(yīng)每條變更路段所屬的增量類型判基于其與原路網(wǎng)數(shù)據(jù)中結(jié)點(diǎn)及路段相交的個 數(shù),獲取相交個數(shù)的算法如下
//獲取變更路段與原路網(wǎng)數(shù)據(jù)中結(jié)點(diǎn)相交的個數(shù) pFilterNode = new SpatialFilterClass(); pFi IterNode. Geometry = pNewRoadFeature· Shape ;//變更路段 pFilterNode. GeometryField = "Shape";
pFilterNode. SpatialRel = esriSpatia1Re1Enum. esriSpatialRelTouches; pFeatNodeSelect = (IFeatureSelection)pFeatLyrBaseNode;// 原路網(wǎng)中結(jié)點(diǎn)數(shù)據(jù)

pFeatNodeSelect. SelectFeatures(pFilterNode,esriSeIectionResuitEnum. esriSeIectionResultNewj false);
pSelSetNode=pFeatNodeSelect. SelectionSet;
int pInterNodeNum=pSelSetNode. Count;//更路段與原路網(wǎng)數(shù)據(jù)中結(jié)點(diǎn)相交的個數(shù)
//獲取變更路段與原路網(wǎng)數(shù)據(jù)中路段相交的個數(shù)
pFilterRoad = new SpatialFilterClass();
pFi IterRoad. Geometry = pNewRoadFeature. Shape ; // 變更路段
pFilterRoad. GeometryField = "Shape";
pFilterRoad. SpatialRel = esriSpatia1Re1Enum. esriSpatialRellntersects; pFeatRoadSelect = (IFeatureSelection)pFeatLyrBaseRoad; //原路網(wǎng)中路段數(shù)據(jù)

pFeatRoadSelect. SelectFeatures(pFilterRoad, esriSeIectionResuItEnum. esriSeIectionResultNew, false);
pSelSetRoad=pFeatRoadSelect. SelectionSet;
int pInterRoadNum=pSelSetNode. Count;//更路段與原路網(wǎng)數(shù)據(jù)中路段相交的個數(shù)
4、利用試驗(yàn)數(shù)據(jù)對增量更新的局域拓?fù)渲亟ㄟM(jìn)行測試,測試結(jié)果如表4所示, 表中類型中的a、b、c、d、e、f分別對應(yīng)著圖2至圖7中6種增量類型,add和sub分別
代表相應(yīng)的增加路段和銷毀路段情況,表3所列出的耗時(shí)有兩部分組成,即路網(wǎng)圖形的更 新耗時(shí)和局域拓?fù)涞木S護(hù)的耗時(shí);提取路網(wǎng)全局拓?fù)浜臅r(shí)(包括提取全局路段-結(jié)點(diǎn)拓?fù)?耗時(shí)約600秒和提取全局結(jié)點(diǎn)-路段拓?fù)浜臅r(shí)約1291秒)約為1891秒,故增量更新的局域 拓?fù)渲亟ㄐ时热滞負(fù)渲亟ㄐ矢?。盡管試驗(yàn)中平均更新每條路段所需時(shí)間仍很多,但 算法的改進(jìn)會進(jìn)一步提高操作效率。3 表
權(quán)利要求
一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?,其特征在于具體過程如下步驟一、根據(jù)原有的路網(wǎng)數(shù)據(jù),提取全局路網(wǎng)拓?fù)湫畔?,形成拓?fù)湫畔⑽募?;步驟二、在原有的路網(wǎng)數(shù)據(jù)基礎(chǔ)上,增加路網(wǎng)增量數(shù)據(jù),所述路網(wǎng)增量數(shù)據(jù)包括增加路段數(shù)據(jù)和銷毀路段數(shù)據(jù);步驟三、根據(jù)路網(wǎng)增量數(shù)據(jù)確定路網(wǎng)變化的類型,并根據(jù)路網(wǎng)變化的類型確定局域拓?fù)渲亟ǚ桨?;步驟四、根據(jù)步驟三獲得的路網(wǎng)變化的類型和相應(yīng)的局域拓?fù)渲亟ǚ桨?,修改步驟一中的拓?fù)湫畔⑽募?,?shí)現(xiàn)局域拓?fù)渲亟?,進(jìn)而使得全局路網(wǎng)拓?fù)潢P(guān)系隨之更新。
2.根據(jù)權(quán)利要求1所述的一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?,其特?在于步驟一中所述的原有的路網(wǎng)數(shù)據(jù)包括路段集和結(jié)點(diǎn)集,結(jié)點(diǎn)集中的結(jié)點(diǎn)為對應(yīng)路段集 中路段的端點(diǎn);所述拓?fù)湫畔⑽募ńY(jié)點(diǎn)一路段拓?fù)湫畔⑽募吐范我唤Y(jié)點(diǎn)拓?fù)湫畔⑽?件;所述的結(jié)點(diǎn)一路段拓?fù)湫畔⑽募涗浗Y(jié)點(diǎn)連接的路段信息,包含字段有結(jié)點(diǎn)的ID標(biāo) 識號碼和結(jié)點(diǎn)的連接路段LINKLIST屬性信息,其中結(jié)點(diǎn)的連接路段LINKLIST屬性信息為 與所述結(jié)點(diǎn)連接的路段的ID標(biāo)識號碼;所述路段一結(jié)點(diǎn)拓?fù)湫畔⑽募涗浡范闻c結(jié)點(diǎn)的 對應(yīng)關(guān)系,包含字段有路段的ID標(biāo)識號碼、FNODE起始點(diǎn)信息和TNODE終止點(diǎn)信息;所述 FNODE起始點(diǎn)信息表示路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼,所述TNODE終止點(diǎn)信息表示 路段終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼。
3.根據(jù)權(quán)利要求2所述的一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?,其特征?于步驟一中提取全局路網(wǎng)拓?fù)湫畔⒌木唧w過程如下步驟一一、順序提取已知路段集中第一條路段,然后在結(jié)點(diǎn)集中搜索與該路段起始端 點(diǎn)和終止端點(diǎn)分別重合的結(jié)點(diǎn);將所述第一條路段的拓?fù)湫畔⒂涗浻诼范我唤Y(jié)點(diǎn)拓?fù)湮募?中,所述第一條路段的拓?fù)湫畔樵撀范蔚腎D標(biāo)識號碼、FNODE起始點(diǎn)信息和TNODE終止 點(diǎn)fn息;步驟一二、按照路段存儲順序提取已知路段集中第i條路段的拓?fù)湫畔ⅲ琲 > 2 ;步驟一三、重復(fù)執(zhí)行步驟一二,直到完成最后一條路段的拓?fù)湫畔⒂涗洝?br> 4.根據(jù)權(quán)利要求2所述的一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?,其特征?于步驟一中提取全局路網(wǎng)拓?fù)湫畔⒌木唧w過程如下步驟一四、順序提取結(jié)點(diǎn)集中的第一個結(jié)點(diǎn),然后在路段集中搜索與該結(jié)點(diǎn)相交的 路段,并獲取相交路段的ID標(biāo)識號碼;將所述第一個結(jié)點(diǎn)的拓?fù)湫畔⒂涗浻诮Y(jié)點(diǎn)一路段 拓?fù)湫畔⑽募龅谝粋€結(jié)點(diǎn)的拓?fù)湫畔樵摻Y(jié)點(diǎn)的ID標(biāo)識號碼及該結(jié)點(diǎn)的連接路段 LINKLIST屬性信息;步驟一五、按照結(jié)點(diǎn)存儲順序提取已知結(jié)點(diǎn)集中第i個結(jié)點(diǎn)的拓?fù)湫畔?,i > 2 ;步驟一六、重復(fù)執(zhí)行步驟一五,直到完成最后一個結(jié)點(diǎn)的拓?fù)湫畔⒂涗洝?br> 5.根據(jù)權(quán)利要求1、2、3或4所述的一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒ǎ?其特征在于步驟二中增路段數(shù)據(jù)和銷毀路段數(shù)據(jù)各分為六種類型,所述六種類型中增量路 段端點(diǎn)對應(yīng)結(jié)點(diǎn)在原結(jié)點(diǎn)集中的存在情況和與已有路段相交情況為
6.根據(jù)權(quán)利要求5所述的一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?,其特征?于步驟三中根據(jù)路網(wǎng)變化的類型確定局域拓?fù)渲亟ǚ桨?,所述局域拓?fù)渲亟ǚ桨赴ㄔ黾?路段類型的局域拓?fù)渲亟ǚ桨负弯N毀路段類型的局域拓?fù)渲亟ǚ桨?,其?增加路段類型的局域拓?fù)渲亟ǚ桨溉缦聦τ陬愋蚢路段、首先,在路段集中增加1條路段記錄,在結(jié)點(diǎn)集中增加所述路段的 起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn),并分別設(shè)置ID標(biāo)識號碼,其次,將所述路段的拓 撲信息增加到路段一結(jié)點(diǎn)拓?fù)湮募?,并將所述兩結(jié)點(diǎn)的拓?fù)湫畔⒃黾拥浇Y(jié)點(diǎn)一路段拓?fù)湮?件,所述兩結(jié)點(diǎn)的連接路段LINKLIST屬性信息設(shè)置為所述增加路段的ID標(biāo)識號碼;對于類型b路段、首先,在路段集中增加3條路段記錄,所述3條路段為新增加的1條 路段、與新增加路段相交的原有的1條路段被新增加路段拆分成的2條新路段,并設(shè)置這3 條路段的ID標(biāo)識號碼;其次,在路段集中刪除與新增路段相交的原有路段,并在路段一結(jié) 點(diǎn)拓?fù)湮募袆h除被刪除路段的拓?fù)溆涗洠辉俅?,在結(jié)點(diǎn)集中增加兩個結(jié)點(diǎn),并分別設(shè)置所 述兩個結(jié)點(diǎn)的ID標(biāo)識號碼為所述新增加的1條路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼和 路段終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼;最后,將所述3路段的拓?fù)湫畔⒃黾拥铰范我唤Y(jié)點(diǎn) 拓?fù)湮募?,在結(jié)點(diǎn)一路段拓?fù)湮募性黾铀鰞蓚€結(jié)點(diǎn)的拓?fù)湫畔ⅲ⑿薷谋粍h除路段兩 端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST屬性信息;對于類型c路段、首先,在路段集中增加5條路段記錄,所述5路段為新增加的1條路 段、與新增加路段相交的原有的兩條路段分別被新增加路段拆分成的4條新路段,并設(shè)置 這5條路段的ID標(biāo)識號碼;其次,在路段集中刪除與新增路段相交的原有路段的所有信息, 并在路段一結(jié)點(diǎn)拓?fù)湮募袆h除被刪除路段的拓?fù)溆涗洠辉俅?,在結(jié)點(diǎn)集中增加兩個結(jié)點(diǎn) 記錄,分別設(shè)置所述兩個結(jié)點(diǎn)的ID標(biāo)識號碼為所述新增加的1條路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn) 的ID標(biāo)識號碼和路段終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼;最后,將所述5條路段的拓?fù)湫畔?增加到路段一結(jié)點(diǎn)拓?fù)湮募?,在結(jié)點(diǎn)一路段拓?fù)湮募性黾铀鰞蓚€結(jié)點(diǎn)的拓?fù)湫畔?,?修改被刪除路段兩端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST屬性信息;對于類型d路段、首先,在路段集中增加1條路段記錄,設(shè)置該路段的ID標(biāo)識號碼;其 次,在結(jié)點(diǎn)集中新增1個結(jié)點(diǎn)記錄,此結(jié)點(diǎn)為新增路段與原有路段未相交的新增路段端點(diǎn), 設(shè)置所述結(jié)點(diǎn)的ID標(biāo)識號碼為所述新增路段的終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼;最后,將 所述新增路段的拓?fù)湫畔⒃黾拥铰范我唤Y(jié)點(diǎn)拓?fù)湮募瑢⑺鲂略鼋Y(jié)點(diǎn)的拓?fù)湫畔⒃黾拥浇Y(jié)點(diǎn)一路段拓?fù)湮募?,所述新增結(jié)點(diǎn)的連接路段LINKLIST屬性信息為所述新增路段的ID 標(biāo)識號碼,并將所述新增路段與原有路段的相交結(jié)點(diǎn)的連接路段LINKLIST屬性信息增加 所述新增路段的ID標(biāo)識號碼;對于類型e路段、首先,在路段集中增加3條路段記錄,所述3條路段為新增加的1條路 段、與新增加路段相交的原有的1條路段被新增加路段拆分成的2條新路段,并設(shè)置這3條 路段的ID標(biāo)識號碼;其次,在路段集中刪除與新增加路段相交的原有路段的所有信息,并 在路段一結(jié)點(diǎn)拓?fù)湮募袆h除被刪除路段的拓?fù)溆涗?;再次,在結(jié)點(diǎn)集中增加1個結(jié)點(diǎn)記 錄,此結(jié)點(diǎn)為新增路段與原有路段相交于非結(jié)點(diǎn)的點(diǎn),設(shè)置ID標(biāo)識號碼為所述新增路段的 終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的ID標(biāo)識號碼;最后,將所述3路段的拓?fù)湫畔⒃黾拥铰范我唤Y(jié)點(diǎn)拓?fù)?文件,將所述結(jié)點(diǎn)的拓?fù)湫畔⒃黾拥浇Y(jié)點(diǎn)一路段拓?fù)湮募?,所述結(jié)點(diǎn)的連接路段LINKLIST 屬性信息為所述3條增加路段的ID標(biāo)識號碼,將相交結(jié)點(diǎn)的連接路段LINKLIST屬性信息 增加所述增加路段的ID標(biāo)識號碼,修改被刪除路段兩端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST 屬性信息;對于類型f路段、首先,在路段集中增加1條路段記錄,設(shè)置該路段的ID標(biāo)識號碼,并 將該路段的拓?fù)湫畔⒃黾拥铰范我唤Y(jié)點(diǎn)拓?fù)湮募黄浯?,在結(jié)點(diǎn)一路段拓?fù)湮募袑⑾嘟?結(jié)點(diǎn)的連接路段LINKLIST屬性信息增加所述增加路段的ID標(biāo)識號碼; 銷毀路段類型的局域拓?fù)渲亟ǚ桨溉缦聦τ陬愋蚢路段,首先,在結(jié)點(diǎn)集中刪除銷毀路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng) 結(jié)點(diǎn)的所有信息,并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗?;其次,在路段集中刪除 銷毀路段的路段記錄,并在路段一結(jié)點(diǎn)拓?fù)湮募袆h除所述銷毀路段的拓?fù)溆涗洠粚τ陬愋蚥路段,首先,在結(jié)點(diǎn)集中刪除銷毀路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng) 結(jié)點(diǎn)的所有信息,并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗?;其次,在路段集中刪除 3條路段記錄,所述3條路段為銷毀的1條路段、與銷毀路段相交的原有的2條路段,并在路 段一結(jié)點(diǎn)拓?fù)湮募袆h除所述3條路段的拓?fù)溆涗?;再次,在路段集中增?條路段記錄, 所述的1條路段為與銷毀路段相交的原有的2條路段合并成的1條新路段,并設(shè)置該條路 段的ID標(biāo)識號碼,并在路段一結(jié)點(diǎn)拓?fù)湮募杏涗浰龅?條新路段的拓?fù)溆涗?;最后?在結(jié)點(diǎn)一路段拓?fù)湮募行薷乃龅?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié) 點(diǎn)的拓?fù)溆涗?,將所述?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段 LINKLIST屬性信息增加該新路段的ID標(biāo)識號碼并刪除被刪除路段的ID標(biāo)識號碼;對于類型c路段,首先,在結(jié)點(diǎn)集中刪除銷毀路段起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng) 結(jié)點(diǎn)的所有信息,并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗?;其次,在路段集中刪除 5條路段記錄,所述5條路段為銷毀的1條路段、分別與銷毀路段兩端點(diǎn)相交的原有的4條 路段,并在路段一結(jié)點(diǎn)拓?fù)湮募袆h除所述的5條路段的拓?fù)溆涗?;再次,在路段集中增?兩條路段信息,所述的兩條路段為與銷毀路段兩端點(diǎn)相交的原有的4條路段合并成的2條 新路段,并設(shè)置該2條新路段的ID標(biāo)識號碼,并在路段一結(jié)點(diǎn)拓?fù)湮募杏涗浰龅?條 路段的拓?fù)溆涗?;最后,在結(jié)點(diǎn)一路段拓?fù)湮募行薷乃龅?條新路段的起始端點(diǎn)對應(yīng) 結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的拓?fù)溆涗?,將所述?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端 點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST屬性信息增加該新路段的ID標(biāo)識號碼并刪除被刪除路段 的ID標(biāo)識號碼;對于類型d路段,首先,在結(jié)點(diǎn)集中刪除1個結(jié)點(diǎn)記錄,此結(jié)點(diǎn)為銷毀路段與原有路 段未相交的點(diǎn),并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗洠浯?,在結(jié)點(diǎn)集中修改 銷毀路段與原有路段相交的結(jié)點(diǎn)記錄,在結(jié)點(diǎn)一路段拓?fù)湮募袑⑺鼋Y(jié)點(diǎn)的連接路段 LINKLIST屬性信息中刪除被刪除路段的標(biāo)識號碼;最后,在路段集中刪除銷毀路段的路段 記錄,并在路段一結(jié)點(diǎn)拓?fù)湮募袆h除所述的銷毀路段的拓?fù)溆涗?;對于類型e路段,首先,在節(jié)點(diǎn)集中刪除1個結(jié)點(diǎn)記錄,此結(jié)點(diǎn)為銷毀路段與原有路段 相交于非結(jié)點(diǎn)的點(diǎn),并在結(jié)點(diǎn)一路段拓?fù)湮募袆h除相應(yīng)的拓?fù)溆涗?;其次,在路段集中刪 除3條路段記錄,所述3條路段為銷毀的1條路段、與銷毀路段相交的原有的2條路段,并 在路段一結(jié)點(diǎn)拓?fù)湮募袆h除所述的3條路段的拓?fù)溆涗洠辉俅?,在路段集中增?條路 段記錄,所述的1條路段為與銷毀路段相交的原有的2條路段合并成的1條新路段,并設(shè)置 該條路段的ID標(biāo)識號碼,并在路段一結(jié)點(diǎn)拓?fù)湮募杏涗浰龅?條新路段的拓?fù)溆涗洠?最后,在結(jié)點(diǎn)一路段拓?fù)湮募行薷乃?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng) 結(jié)點(diǎn)的拓?fù)溆涗?,將所?條新路段的起始端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段 LINKLIST屬性信息中刪除相應(yīng)銷毀路段的ID標(biāo)識號碼并增加所述1條新增路段的ID標(biāo)識 號碼;對于類型f路段,首先,在路段集中刪除銷毀路段的路段記錄,并在路段一結(jié)點(diǎn)拓?fù)湮?件中刪除相應(yīng)的拓?fù)溆涗?,其次,在結(jié)點(diǎn)一路段拓?fù)湮募行薷乃鲣N毀路段的起始端點(diǎn) 對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的拓?fù)溆涗?,將銷毀路段的ID標(biāo)識號碼在銷毀路段的起始 端點(diǎn)對應(yīng)結(jié)點(diǎn)和終止端點(diǎn)對應(yīng)結(jié)點(diǎn)的連接路段LINKLIST屬性信息組成中刪除。全文摘要
一種用于導(dǎo)航路網(wǎng)增量更新的局域拓?fù)渲亟ǚ椒?,涉及一種局域拓?fù)渲亟ǚ椒?,解決了現(xiàn)有的導(dǎo)航路網(wǎng)全局拓?fù)錁?gòu)建技術(shù)效率低、耗時(shí)長的問題,所述方法具體過程如下一、根據(jù)原有的路網(wǎng)數(shù)據(jù),提取全局路網(wǎng)拓?fù)湫畔?,形成拓?fù)湫畔⑽募?;二、在原有的路網(wǎng)數(shù)據(jù)基礎(chǔ)上,增加路網(wǎng)增量數(shù)據(jù),所述路網(wǎng)增量數(shù)據(jù)包括新增路段數(shù)據(jù)和銷毀路段數(shù)據(jù);三、根據(jù)路網(wǎng)增量數(shù)據(jù)確定路網(wǎng)變化的類型,并根據(jù)路網(wǎng)變化的類型確定局域拓?fù)渲亟ǚ桨?;四、根?jù)步驟三獲得的路網(wǎng)變化的類型和相應(yīng)的局域拓?fù)渲亟ǚ桨?,修改步驟一中的拓?fù)湫畔⑽募?,使得路網(wǎng)更新后,全局路網(wǎng)拓?fù)潢P(guān)系隨之更新。本發(fā)明適用于導(dǎo)航路網(wǎng)數(shù)據(jù)局域更新的拓?fù)渚S護(hù)。
文檔編號H04L12/24GK101924647SQ20101023428
公開日2010年12月22日 申請日期2010年7月23日 優(yōu)先權(quán)日2010年7月23日
發(fā)明者劉兆禮, 吳會勝 申請人:中國科學(xué)院東北地理與農(nóng)業(yè)生態(tài)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1