本發(fā)明涉及測繪領(lǐng)域,具體而言,涉及一種地理信息線要素偽節(jié)點(diǎn)檢查方法及裝置。
背景技術(shù):
在測繪領(lǐng)域中,偽節(jié)點(diǎn)指的是地理信息成果數(shù)據(jù)中線要素內(nèi)存在的不必要的節(jié)點(diǎn),而偽節(jié)點(diǎn)的存在可能會對該地理信息成果數(shù)據(jù)的質(zhì)量造成不良影響,因此需要有一種方法能夠快速有效的檢查出這些偽節(jié)點(diǎn)。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提供一種地理信息線要素偽節(jié)點(diǎn)檢查方法及裝置,旨在解決上述問題。
第一方面,本發(fā)明實施例提供了一種地理信息線要素偽節(jié)點(diǎn)檢查方法,所述方法包括:獲取地理信息成果數(shù)據(jù);獲取所述地理信息成果數(shù)據(jù)中包含每條線對象端點(diǎn)的鄰近點(diǎn)集合;獲取所述鄰近點(diǎn)集合中的每個鄰近點(diǎn)自身對應(yīng)的線對象和與其相鄰的線對象的屬性信息;若當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息相同,則判定所述當(dāng)前鄰近點(diǎn)為不合理的鄰近點(diǎn)。
第二方面,本發(fā)明實施例還提供了一種地理信息線要素偽節(jié)點(diǎn)檢查裝置,所述裝置包括:數(shù)據(jù)獲取模塊,用于獲取地理信息成果數(shù)據(jù);鄰近點(diǎn)集合獲取模塊,用于獲取所述地理信息成果數(shù)據(jù)中包含每條線對象端點(diǎn)的鄰近點(diǎn)集合;線對象獲取模塊,用于獲取所述鄰近點(diǎn)集合中的每個鄰近點(diǎn)自身對應(yīng)的線對象和與其相鄰的線對象的屬性信息;偽節(jié)點(diǎn)判斷模塊,用于在當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息相同時,判定所述當(dāng)前鄰近點(diǎn)為不合理的鄰近點(diǎn)。
本發(fā)明提供的地理信息線要素偽節(jié)點(diǎn)檢查方法及裝置,通過獲取所述地理信息成果數(shù)據(jù)中包含每條線對象端點(diǎn)的鄰近點(diǎn)集合,根據(jù)每個鄰近點(diǎn)的信息得知相互鄰近的線對象,再通過獲取相互鄰近的線對象的屬性信息,來判斷相互鄰近的線對象是否屬性相同,進(jìn)而確認(rèn)相互鄰近的線對象之間的鄰近點(diǎn)是否是偽節(jié)點(diǎn)。在當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息相同時,判定當(dāng)前鄰近點(diǎn)為偽節(jié)點(diǎn),快速而有效的實現(xiàn)了對地理信息成果數(shù)據(jù)的線要素中的偽節(jié)點(diǎn)的檢查,以便及時發(fā)現(xiàn)偽節(jié)點(diǎn)并進(jìn)行后續(xù)的處理。
本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明實施例了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為一種可應(yīng)用于本發(fā)明實施例中的電子設(shè)備的結(jié)構(gòu)框圖;
圖2為本發(fā)明第一實施例提供的地理信息線要素偽節(jié)點(diǎn)檢查方法的流程框圖;
圖3為本發(fā)明第二實施例提供的地理信息線要素偽節(jié)點(diǎn)檢查方法的流程框圖;
圖4為本發(fā)明第二實施例提供的獲取鄰近點(diǎn)集合的流程框圖;
圖5為本發(fā)明第二實施例提供的獲取線對象屬性的流程框圖;
圖6為本發(fā)明第二實施例提供的偽節(jié)點(diǎn)檢查第一階段的示意圖;
圖7為本發(fā)明第二實施例提供的偽節(jié)點(diǎn)檢查第二階段的示意圖;
圖8為本發(fā)明第二實施例提供的偽節(jié)點(diǎn)檢查第三階段的示意圖;
圖9為本發(fā)明第三實施例提供的地理信息線要素偽節(jié)點(diǎn)檢查裝置的結(jié)構(gòu)框圖;
圖10為本發(fā)明第四實施例提供的地理信息線要素偽節(jié)點(diǎn)檢查裝置的結(jié)構(gòu)框圖;
圖11為本發(fā)明第四實施例提供的鄰近點(diǎn)集合獲取模塊的結(jié)構(gòu)框圖;
圖12為本發(fā)明第四實施例提供的線對象獲取模塊的結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。同時,在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
圖1示出了一種可應(yīng)用于本申請實施例中的電子設(shè)備100的結(jié)構(gòu)框圖。如圖1所示,電子設(shè)備100可以包括存儲器110、存儲控制器120、處理器130和地理信息線要素偽節(jié)點(diǎn)檢查裝置。例如,該電子設(shè)備100可以為個人電腦(personalcomputer,pc)、平板電腦、智能手機(jī)、個人數(shù)字助理(personaldigitalassistant,pda)等。
存儲器110、存儲控制器120、處理器130、地理信息線要素偽節(jié)點(diǎn)檢查裝置各元件之間直接或間接地電連接,以實現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件之間可以通過一條或多條通訊總線或信號總線實現(xiàn)電連接。所述地理信息線要素偽節(jié)點(diǎn)檢查方法分別包括至少一個可以以軟件或固件(firmware)的形式存儲于存儲器110中的軟件功能模塊,例如所述地理信息線要素偽節(jié)點(diǎn)檢查裝置包括的軟件功能模塊或計算機(jī)程序。
存儲器110可以存儲各種軟件程序以及模塊,如本申請實施例提供的地理信息線要素偽節(jié)點(diǎn)檢查方法及裝置對應(yīng)的程序指令/模塊。處理器130通過運(yùn)行存儲在存儲器110中的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)本申請實施例中的地理信息線要素偽節(jié)點(diǎn)檢查方法。存儲器110可以包括但不限于隨機(jī)存取存儲器(randomaccessmemory,ram),只讀存儲器(readonlymemory,rom),可編程只讀存儲器(programmableread-onlymemory,prom),可擦除只讀存儲器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲器(electricerasableprogrammableread-onlymemory,eeprom)等。
處理器130可以是一種集成電路芯片,具有信號處理能力。上述處理器可以是通用處理器,包括中央處理器(centralprocessingunit,簡稱cpu)、網(wǎng)絡(luò)處理器(networkprocessor,簡稱np)等;還可以是數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。其可以實現(xiàn)或者執(zhí)行本申請實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
當(dāng)電子設(shè)備100為具有自顯示功能時,還可以包括顯示模塊,該顯示模塊可以在所述電子設(shè)備100與用戶之間提供一個交互界面(例如用戶操作界面)或用于顯示圖像數(shù)據(jù)給用戶參考。例如,可以顯示地理信息線要素偽節(jié)點(diǎn)檢查裝置對偽節(jié)點(diǎn)的判定結(jié)果。
第一實施例
請參照圖2,本發(fā)明實施例提供了一種地理信息線要素偽節(jié)點(diǎn)檢查方法,所述方法包括:
步驟s200:獲取地理信息成果數(shù)據(jù);
所述地理信息成果數(shù)據(jù)是基于arcgis平臺獲取的待檢查路徑的數(shù)據(jù),所述地理信息成果數(shù)據(jù)中包含了多個點(diǎn)、線、面類型的圖層,將待查路徑的數(shù)據(jù)錄入arcgis平臺后還需進(jìn)行數(shù)據(jù)初始化,以便提取該數(shù)據(jù)中包含的多個線要素拓?fù)鋱D層,偽節(jié)點(diǎn)即為這些線要素中存在的不必要的節(jié)點(diǎn)。
步驟s210:獲取所述地理信息成果數(shù)據(jù)中包含每條線對象端點(diǎn)的鄰近點(diǎn)集合;
通過預(yù)設(shè)的圖層過濾條件可以將所述地理信息成果數(shù)據(jù)中包含的點(diǎn)要素圖層和面要素圖層過濾掉,留下本實施例中需要進(jìn)行檢查的線要素圖層的部分,一條線對象即為一個線要素。所述預(yù)設(shè)的圖層過濾條件可以根據(jù)實際需求進(jìn)行設(shè)定,例如,可以調(diào)節(jié)其對線要素過濾的容限值(clustertolerance)和精度等級(coordinateaccuracyrank),此時所述預(yù)設(shè)的圖層過濾條件也可以看作是對線要素的拓?fù)浼s束條件。獲取所有需要進(jìn)行檢查的線對象之后,可以進(jìn)一步獲取每條線對象的端點(diǎn),通過循環(huán)檢查每個端點(diǎn)的信息,獲得相互鄰近的端點(diǎn),并以當(dāng)前檢查的端點(diǎn)為初始端點(diǎn),將這些相互鄰近的端點(diǎn)(包括所述初始端點(diǎn))共同作為一個鄰近點(diǎn),即表示這些相互鄰近的端點(diǎn)所分別對應(yīng)的線對象之間,也是相互鄰近的??梢岳斫獾氖牵總€鄰近點(diǎn)都可以是線對象之間的節(jié)點(diǎn),獲取了包含每條線對象端點(diǎn)的鄰近點(diǎn)集合,相當(dāng)于知道了相互鄰近的線對象有哪些,而相互鄰近的線對象之間有可能出現(xiàn)不必要的節(jié)點(diǎn)即偽節(jié)點(diǎn),此時就需要對這些鄰近點(diǎn)是否是偽節(jié)點(diǎn)進(jìn)一步進(jìn)行判斷。在本實施例的具體實施方案中,每條線對象的兩個端點(diǎn)都具有相應(yīng)的標(biāo)識信息,例如,線對象的id為1,該線對象的兩個端點(diǎn)的標(biāo)識可以分別為(1,frompoint)和(1,endpoint),以此來保證每個端點(diǎn)都是獨(dú)一無二的。
步驟s220:獲取所述鄰近點(diǎn)集合中的每個鄰近點(diǎn)自身對應(yīng)的線對象和與其相鄰的線對象的屬性信息;
通過遍歷所述鄰近點(diǎn)集合,逐一對所述鄰近點(diǎn)集合中的所有鄰近點(diǎn)進(jìn)行檢查,獲取每個鄰近點(diǎn)的信息。在本實施例中,每個鄰近點(diǎn)都包含了自身對應(yīng)的線對象和與其相鄰的線對象的身份信息,即自身id和鄰近id,而每個鄰近點(diǎn)都是以某一條線對象的某一個端點(diǎn)(為易于理解以下簡稱a端點(diǎn))為基礎(chǔ)設(shè)置的,此時,作為初始端點(diǎn)的a端點(diǎn)所對應(yīng)的線對象,可以認(rèn)為是以a端點(diǎn)為初始端點(diǎn)設(shè)置的鄰近點(diǎn)自身所對應(yīng)的線對象,而該鄰近點(diǎn)的自身id就是其自身所對應(yīng)的線對象的身份信息??梢岳斫獾氖?,所述線對象的身份信息是每條線對象自身所具有的標(biāo)記,每條線對象的身份信息都是不同的,但是其屬性信息卻有可能是相同的,而屬性相同且相鄰的線對象之間的節(jié)點(diǎn)可以認(rèn)為是不必要的。通過獲取相鄰線對象的屬性信息,以便對所述屬性信息進(jìn)行進(jìn)一步比較。
步驟s230:若當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息相同,則判定所述當(dāng)前鄰近點(diǎn)為不合理的鄰近點(diǎn)。
相鄰且屬性信息相同的線對象,雖然其身份信息不同,位置不同,但是具有的屬性卻是相同。此時可以認(rèn)為,相鄰且屬性信息相同的線對象之間的用于分隔的節(jié)點(diǎn)是不必要的,該節(jié)點(diǎn)為偽節(jié)點(diǎn)。在本實施例中,若鄰近點(diǎn)附近的線對象的屬性信息是相同的,可以判定該鄰近點(diǎn)為不合理的鄰近點(diǎn),該鄰近點(diǎn)所表示的節(jié)點(diǎn)即為不必要的偽節(jié)點(diǎn)。
第二實施例
請參照圖3,本發(fā)明實施例提供了一種地理信息線要素偽節(jié)點(diǎn)檢查方法,所述方法包括:
步驟s300:獲取地理信息成果數(shù)據(jù);
步驟s310:獲取所述地理信息成果數(shù)據(jù)中包含每條線對象端點(diǎn)的鄰近點(diǎn)集合;
步驟s320:獲取所述鄰近點(diǎn)集合中的每個鄰近點(diǎn)自身對應(yīng)的線對象和與其相鄰的線對象的屬性信息;
本實施例中,上述步驟s300、步驟s310及步驟s320的具體實施方式可以參照上述第一實施例中的步驟s200、步驟s210及步驟s220,此處不再贅述。
步驟s330:判斷當(dāng)前鄰近點(diǎn)自身對應(yīng)的線對象和與其相鄰的線對象的屬性信息是否相同;
若當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息相同,則執(zhí)行步驟s340;
若當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息不同,則執(zhí)行步驟s350。
步驟s340:判定所述當(dāng)前鄰近點(diǎn)為不合理的鄰近點(diǎn)。
步驟s350:判定所述當(dāng)前鄰近點(diǎn)為合理的鄰近點(diǎn)。
本實施例提供的地理信息線要素偽節(jié)點(diǎn)檢查方法的主要目的是為了檢查出不合理的鄰近點(diǎn),經(jīng)過判定的不合理的鄰近點(diǎn)可以輸出,而合理的鄰近點(diǎn)可以不用輸出。
請參照圖4,在本實施例中,具體的,步驟s310可以包含如下子步驟:
步驟s312:根據(jù)所述地理信息成果數(shù)據(jù)建立包含每條線對象端點(diǎn)的集合;
通過預(yù)設(shè)的圖層過濾條件可以將所述地理信息成果數(shù)據(jù)中包含的點(diǎn)要素圖層和面要素圖層過濾掉,留下本實施例中需要進(jìn)行檢查的線要素圖層的部分,一條線對象即為一個線要素。獲取所有需要進(jìn)行檢查的線對象之后,可以進(jìn)一步獲取每條線對象的端點(diǎn),這些端點(diǎn)共同構(gòu)成了所述包含每條線對象端點(diǎn)的集合。
步驟s314:獲取當(dāng)前端點(diǎn);
循環(huán)檢查每個端點(diǎn)的信息,可以依據(jù)預(yù)設(shè)的線對象的身份信息所標(biāo)記的順序?qū)γ總€端點(diǎn)進(jìn)行逐個提取,而每次提取的需要進(jìn)行即刻檢查的端點(diǎn)即可認(rèn)為是當(dāng)前端點(diǎn)。
步驟s316:判斷所述當(dāng)前端點(diǎn)在預(yù)設(shè)的搜索半徑內(nèi)是否存在其它端點(diǎn);
以所述當(dāng)前端點(diǎn)為中心,在預(yù)設(shè)的搜索半徑內(nèi)進(jìn)行檢查,以得知在預(yù)設(shè)的搜索半徑內(nèi)是否存在其它線對象的端點(diǎn)。由于每條線對象都有其長度信息,在上述步驟s312中獲取了需要檢查的線對象之后,可以根據(jù)長度最短的線對象來設(shè)置搜索半徑的上限,以此確保搜索范圍內(nèi)不會同時存在同一線對象的兩個端點(diǎn);也可以根據(jù)具體的設(shè)計要求中對偽節(jié)點(diǎn)的精度要求來對搜索半徑的數(shù)值進(jìn)行設(shè)置。
若所述當(dāng)前端點(diǎn)在預(yù)設(shè)的搜索半徑內(nèi)存在其它端點(diǎn),且所述其它端點(diǎn)的數(shù)量為n,則執(zhí)行步驟s317;
若所述當(dāng)前端點(diǎn)在預(yù)設(shè)的搜索半徑內(nèi)不存在其它端點(diǎn),則執(zhí)行步驟s318。
步驟s317:將所述當(dāng)前端點(diǎn)與所述其它端點(diǎn)共同設(shè)置為一個鄰近點(diǎn),所述鄰近點(diǎn)的鄰近點(diǎn)數(shù)設(shè)置為n,自身id設(shè)置為所述當(dāng)前端點(diǎn)對應(yīng)的線對象的id,鄰近id設(shè)置為所述其他端點(diǎn)對應(yīng)的n條線對象的id的集合;
在預(yù)設(shè)的搜索半徑內(nèi)還存在其它端點(diǎn),可以認(rèn)為存在其它的線對象與所述當(dāng)前端點(diǎn)所對應(yīng)的線對象相鄰,即當(dāng)前端點(diǎn)附近可能存在偽節(jié)點(diǎn)。在本實施例中,每個鄰近點(diǎn)都包括三種基本信息,分別為鄰近點(diǎn)數(shù)、自身id和鄰近id,自身id為當(dāng)前鄰近點(diǎn)自身對應(yīng)的線對象的id,鄰近id為與所述當(dāng)前鄰近點(diǎn)相鄰的線對象的id。本實施例中,n可以是大于0的自然數(shù),鄰近點(diǎn)數(shù)的初始值為0,若以當(dāng)前端點(diǎn)為中心在預(yù)設(shè)的搜索半徑內(nèi)搜索出了n個其它端點(diǎn),那么可以認(rèn)為包括當(dāng)前端點(diǎn)在內(nèi)的這些端點(diǎn)非??拷梢越瓶醋魇且粋€節(jié)點(diǎn),即一個鄰近點(diǎn),該鄰近點(diǎn)以當(dāng)前端點(diǎn)為基礎(chǔ)的鄰近端點(diǎn)的數(shù)量即為n,該鄰近點(diǎn)的鄰近點(diǎn)數(shù)所表示的即是當(dāng)前端點(diǎn)附近所存在的其他端點(diǎn)的數(shù)量,進(jìn)一步可以認(rèn)為是與當(dāng)前端點(diǎn)所對應(yīng)的線對象相鄰的其他線對象的數(shù)量。由于鄰近點(diǎn)是以當(dāng)前端點(diǎn)為基礎(chǔ)進(jìn)行設(shè)置的,鄰近點(diǎn)所對應(yīng)的線對象的身份信息即自身id,可以認(rèn)為是當(dāng)前端點(diǎn)對應(yīng)的線對象的id。在本實施例中,可以理解的是,鄰近點(diǎn)是以當(dāng)前端點(diǎn)為基礎(chǔ),加入與當(dāng)前端點(diǎn)相鄰的其他端點(diǎn)共同設(shè)置的,鄰近點(diǎn)的自身id表示的是當(dāng)前端點(diǎn)對應(yīng)的線對象身份信息,鄰近id表示的是其他相鄰端點(diǎn)所對應(yīng)的線對象的身份信息集合。
步驟s318:將所述當(dāng)前端點(diǎn)設(shè)置為一個鄰近點(diǎn),所述鄰近點(diǎn)的鄰近點(diǎn)數(shù)為0,自身id設(shè)置為所述當(dāng)前端點(diǎn)對應(yīng)的線對象的id;
若以當(dāng)前端點(diǎn)為中心,在預(yù)設(shè)的搜索半徑內(nèi)搜索不出其他端點(diǎn),那么可以認(rèn)為當(dāng)前端點(diǎn)是獨(dú)立的,當(dāng)前端點(diǎn)所對應(yīng)的線對象在當(dāng)前端點(diǎn)一側(cè)也沒有鄰近的其他線對象。此時以當(dāng)前端點(diǎn)為基礎(chǔ)設(shè)置的鄰近點(diǎn)中只包當(dāng)前端點(diǎn)所對應(yīng)的線對象的身份信息即自身id,其鄰近點(diǎn)數(shù)為0,鄰近id可以為空。
本實施例中,執(zhí)行完成步驟s317或步驟s318后,若所述包含每條線對象端點(diǎn)的集合中還有剩余的端點(diǎn)既沒有進(jìn)行檢查,也沒有被歸入設(shè)置為鄰近點(diǎn),那么返回執(zhí)行步驟s314,進(jìn)行下一個端點(diǎn)的檢查。通過遍歷端點(diǎn)集合,將端點(diǎn)集合中的每個端點(diǎn)都?xì)w入鄰近點(diǎn)中,以得到包含每條線對象端點(diǎn)的鄰近點(diǎn)集合。
步驟s319:得到包含每條線對象端點(diǎn)的鄰近點(diǎn)集合。
本實施例中,包含每條線對象端點(diǎn)的集合中,已經(jīng)設(shè)置為鄰近點(diǎn)的端點(diǎn)不再重復(fù)參與設(shè)置。可以理解的是,已經(jīng)被當(dāng)作其他端點(diǎn)歸入已經(jīng)設(shè)置完成的鄰近點(diǎn)的端點(diǎn),不再參與后續(xù)的鄰近點(diǎn)設(shè)置步驟,即鄰近點(diǎn)集合中每個鄰近點(diǎn)中包括的端點(diǎn)都是獨(dú)一無二的,不會在兩個鄰近點(diǎn)中重復(fù)出現(xiàn)同一端點(diǎn),目的是為了不會重復(fù)建立相同的鄰近點(diǎn)。
請參照圖5,在本實施例中,具體的,步驟s320可以包含如下子步驟:
步驟s322:獲取當(dāng)前鄰近點(diǎn);
獲取當(dāng)前鄰近點(diǎn)所包含的三種基本信息,即當(dāng)前鄰近點(diǎn)鄰近點(diǎn)數(shù)、自身id和鄰近id。
步驟s324:判斷所述當(dāng)前鄰近點(diǎn)的鄰近點(diǎn)數(shù)是否為1;
本實施例的某些實施方案中,只有在當(dāng)前鄰近點(diǎn)的鄰近點(diǎn)數(shù)n為1,即只有一條其他線對象與當(dāng)前鄰近點(diǎn)對應(yīng)的線對象相鄰時,才有可能出現(xiàn)偽節(jié)點(diǎn)??梢哉J(rèn)為,若同時出現(xiàn)三條及以上的線對象共用同一節(jié)點(diǎn),那么該節(jié)點(diǎn)一定不是偽節(jié)點(diǎn)。根據(jù)對偽節(jié)點(diǎn)的定義不同,本實施例的其他的實施方案中可能存在同時出現(xiàn)三條及以上的線對象共用同一節(jié)點(diǎn)的情況下,該節(jié)點(diǎn)也被認(rèn)為是檢查對象,即本實施例提供的地理信息線要素偽節(jié)點(diǎn)檢查方法不僅可以用于檢查常規(guī)的偽節(jié)點(diǎn),還可以用于檢查共用同一節(jié)點(diǎn)的線對象的數(shù)量及其信息。
若所述當(dāng)前鄰近點(diǎn)的鄰近點(diǎn)數(shù)為1,則執(zhí)行步驟s326;
若所述當(dāng)前鄰近點(diǎn)的鄰近點(diǎn)數(shù)不為1,且所述鄰近點(diǎn)集合中還有未檢查的其他鄰近點(diǎn)存在,返回執(zhí)行步驟s322以檢查下一個鄰近點(diǎn)。
步驟s326:獲取所述當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息。
本實施例中,若鄰近的兩條線對象的屬性信息相同,即可認(rèn)為這兩條線對象之間的節(jié)點(diǎn)不必要,即鄰近的兩條線對象的屬性信息是否相同可用于判斷其共用的節(jié)點(diǎn)是否是偽節(jié)點(diǎn)。
請參照圖6、圖7和圖8,分別為本實施例中,進(jìn)行步驟s312、步驟s319和步驟s340之后獲取的成果示意圖。其中,標(biāo)號為1和標(biāo)號為2的線對象屬性信息相同,標(biāo)號為3和標(biāo)號為4的線對象屬性信息相同,標(biāo)號為5的線對象為兩個端點(diǎn)相互鄰近的圓弧形線對象。
第三實施例
請參照圖9,本實施例提供一種地理信息線要素偽節(jié)點(diǎn)檢查裝置400,運(yùn)行于電子設(shè)備。所述地理信息線要素偽節(jié)點(diǎn)檢查裝置400包括數(shù)據(jù)獲取模塊410、鄰近點(diǎn)集合獲取模塊420、線對象獲取模塊430和偽節(jié)點(diǎn)判斷模塊440。
數(shù)據(jù)獲取模塊410,用于獲取地理信息成果數(shù)據(jù);
鄰近點(diǎn)集合獲取模塊420,用于獲取所述地理信息成果數(shù)據(jù)中包含每條線對象端點(diǎn)的鄰近點(diǎn)集合;
線對象獲取模塊430,用于獲取所述鄰近點(diǎn)集合中的每個鄰近點(diǎn)自身對應(yīng)的線對象和與其相鄰的線對象的屬性信息;
偽節(jié)點(diǎn)判斷模塊440,用于在當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息相同時,判定所述當(dāng)前鄰近點(diǎn)為不合理的鄰近點(diǎn)。
第四實施例
請參照圖10,本實施例提供一種地理信息線要素偽節(jié)點(diǎn)檢查裝置500,運(yùn)行于電子設(shè)備。所述地理信息線要素偽節(jié)點(diǎn)檢查裝置500包括數(shù)據(jù)獲取模塊510、鄰近點(diǎn)集合獲取模塊520、線對象獲取模塊530和偽節(jié)點(diǎn)判斷模塊540。
數(shù)據(jù)獲取模塊510,用于獲取地理信息成果數(shù)據(jù);
鄰近點(diǎn)集合獲取模塊520,用于獲取所述地理信息成果數(shù)據(jù)中包含每條線對象端點(diǎn)的鄰近點(diǎn)集合;
線對象獲取模塊530,用于獲取所述鄰近點(diǎn)集合中的每個鄰近點(diǎn)自身對應(yīng)的線對象和與其相鄰的線對象的屬性信息;
偽節(jié)點(diǎn)判斷模塊540,用于在當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息相同時,判定所述當(dāng)前鄰近點(diǎn)為不合理的鄰近點(diǎn);以及在當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息不同時,判定所述當(dāng)前鄰近點(diǎn)為合理的鄰近點(diǎn)。
請參照圖11,在本實施例中,所述鄰近點(diǎn)集合獲取模塊520包括:
端點(diǎn)集合建立單元522,用于根據(jù)所述地理信息成果數(shù)據(jù)建立包含每條線對象端點(diǎn)的集合;
端點(diǎn)提取單元524,用于獲取當(dāng)前端點(diǎn);
鄰近搜索單元526,用于判斷所述當(dāng)前端點(diǎn)在預(yù)設(shè)的搜索半徑內(nèi)是否存在其它端點(diǎn);
鄰近點(diǎn)設(shè)置單元527,用于在所述當(dāng)前端點(diǎn)在預(yù)設(shè)的搜索半徑內(nèi)存在其它端點(diǎn),且所述其它端點(diǎn)的數(shù)量為n時,將所述當(dāng)前端點(diǎn)與所述其它端點(diǎn)共同設(shè)置為一個鄰近點(diǎn),所述鄰近點(diǎn)的鄰近點(diǎn)數(shù)設(shè)置為n,自身id設(shè)置為所述當(dāng)前端點(diǎn)對應(yīng)的線對象的id,鄰近id設(shè)置為所述其他端點(diǎn)對應(yīng)的n條線對象的id的集合;以及在所述當(dāng)前端點(diǎn)在預(yù)設(shè)的搜索半徑內(nèi)不存在其它端點(diǎn)時,將所述當(dāng)前端點(diǎn)設(shè)置為一個鄰近點(diǎn),所述鄰近點(diǎn)的鄰近點(diǎn)數(shù)為0,自身id設(shè)置為所述當(dāng)前端點(diǎn)對應(yīng)的線對象的id;
鄰近點(diǎn)收集單元528,用于得到包含每條線對象端點(diǎn)的鄰近點(diǎn)集合。
請參照圖12,在本實施例中,所述線對象獲取模塊530包括:
鄰近點(diǎn)提取單元532,用于獲取當(dāng)前鄰近點(diǎn);
鄰近點(diǎn)數(shù)判斷單元534,用于判斷所述當(dāng)前鄰近點(diǎn)的鄰近點(diǎn)數(shù)是否為1;
線對象屬性獲取單元536,用于在所述當(dāng)前鄰近點(diǎn)的鄰近點(diǎn)數(shù)為1時,獲取所述當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息。
綜上所述,本發(fā)明提供的地理信息線要素偽節(jié)點(diǎn)檢查方法及裝置,通過獲取所述地理信息成果數(shù)據(jù)中包含每條線對象端點(diǎn)的鄰近點(diǎn)集合,根據(jù)每個鄰近點(diǎn)的信息得知相互鄰近的線對象,再通過獲取相互鄰近的線對象的屬性信息,來判斷相互鄰近的線對象是否屬性相同,進(jìn)而確認(rèn)相互鄰近的線對象之間的鄰近點(diǎn)是否是偽節(jié)點(diǎn)。在當(dāng)前鄰近點(diǎn)對應(yīng)的線對象和與其相鄰的線對象的屬性信息相同時,判定當(dāng)前鄰近點(diǎn)為偽節(jié)點(diǎn),快速而有效的實現(xiàn)了對地理信息成果數(shù)據(jù)的線要素中的偽節(jié)點(diǎn)的檢查,以便及時發(fā)現(xiàn)偽節(jié)點(diǎn)并進(jìn)行后續(xù)的處理。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨(dú)立的部分,也可以是各個模塊單獨(dú)存在,也可以兩個或兩個以上模塊集成形成一個獨(dú)立的部分。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。