專利名稱:地圖顯示系統(tǒng)、地圖數(shù)據(jù)處理裝置、地圖顯示裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及地圖顯示系統(tǒng)、地圖數(shù)據(jù)處理裝置、地圖顯示裝置、和地圖顯示方法,其用于一般導航系統(tǒng),如汽車導航系統(tǒng)和用于給步行者顯示到其目的地的路線的步行導航系統(tǒng),本發(fā)明特別涉及具有顯示三維地圖的功能的地圖顯示系統(tǒng)、地圖數(shù)據(jù)處理裝置、地圖顯示裝置、和地圖顯示方法。
背景技術(shù):
在近幾年里,用于汽車導航系統(tǒng)的三維地圖顯示技術(shù)得到了發(fā)展,已經(jīng)可以在汽車導航屏幕上顯示三維地圖。這樣,通過汽車導航系統(tǒng),用戶能夠以三維方式知道當前位置與諸如周圍建筑和十字路口的三維結(jié)構(gòu)的關(guān)系。
同樣,在諸如個人數(shù)字助理(PDA)和便攜式電話的終端上已經(jīng)安裝或可選地安裝用于了解當前位置的全球定位系統(tǒng)(GPS)。因此,用于引導持有這種終端的用戶從當前位置去往其目的地的步行導航系統(tǒng)已經(jīng)投入實際使用。
而且,能夠通過硬件實時高速地在這種便攜式終端的屏幕上繪制(render)三維圖形的三維圖形繪制引擎最近已經(jīng)投入實際使用,甚至在便攜式終端上也能夠高速繪制圖形。
硬盤也可以安裝在汽車導航裝置上。同樣,外設(shè)大容量存儲器,如Memory Stick(Memory Stick(記憶棒)是索尼公司的注冊商標),可以安裝在諸如PDA的便攜式終端上。大量的數(shù)據(jù),如三維地圖數(shù)據(jù),被存儲在這樣的存儲器中,使得可以高速訪問這些數(shù)據(jù)。
布景圖(scene graph),顯示三維圖形的一種技術(shù),用于繪制有復雜結(jié)構(gòu)的物體。
圖33A和33B顯示了利用布景圖構(gòu)造的物體的例子。圖33A顯示了作為物體的三維機器人140,圖33B顯示了構(gòu)造該物體的部分。
圖34顯示了呈現(xiàn)圖33A所示物體的結(jié)構(gòu)的布景圖的例子。
圖35顯示了構(gòu)成用布景圖呈現(xiàn)的物體的部分的配置。
例如,為了表現(xiàn)圖33A所示的機器人140,預(yù)先定義了用作頭或身體的部分141、用作胳膊的部分142、用作腿的部分143,而部分ID,如“1”、“2”、和“3”,被分別分配給部分141、142、和143,以進行管理,如圖33B所示。這些部分的位置關(guān)系從一個根來描述,從而每一部分都在縮放比例、旋轉(zhuǎn)、平移(translation)方面以此順序轉(zhuǎn)換,如在圖34的布景圖中所定義。
從而,例如,如圖35所示,表現(xiàn)并繪制(render)機器人的頭141a、身體141b、左臂142a、右臂142b、左腿143a、和右腿143b。
通常,有多種用于描述布景圖的格式和多種用于管理布景圖的應(yīng)用編程接口(API)可用。Softimage公司的虛擬現(xiàn)實造型語言(VRML)和XSI(商標)是典型的格式。已知Java3D(注冊商標)和OpenInventor(商標)是能夠管理布景圖的API。
一種能夠在布景圖中用K維樹結(jié)構(gòu)(更具體的,6維樹結(jié)構(gòu))定義三維建筑物以便于搜索的數(shù)據(jù)保持方法已經(jīng)被公開,例如,在公開號為10-293862的日本未審批專利申請中(圖14)。
相反地,盡可能精確地實現(xiàn)高速繪制而不降低三維物體外形輪廓的詳細度級別(level of detail)(LOD)技術(shù)已經(jīng)被使用。
圖36至38說明了LOD技術(shù)的例子。
例如,如圖36所示,根據(jù)LOD技術(shù),為要繪制的物體預(yù)先準備多個詳細度級別,如物體150為級別1,物體151為級別2,而物體152為級別3。為了繪制,根據(jù)與觀察點(攝像機155的位置)的距離選擇處于最合適的詳細度級別的物體。
例如,對于與攝像機155非常接近的物體,繪制級別1的物體150;對于與攝像機155距離較遠的物體,繪制級別2的物體151;對于與攝像機155距離非常遠的物體,繪制級別3的物體152。因此,與必須為任何位置的任何物體繪制全部數(shù)據(jù)的常規(guī)技術(shù)相比較,通過引入LOD技術(shù),可以實現(xiàn)了為遠離攝像機的物體繪制簡化數(shù)據(jù),而為位于攝像機附加的物體繪制詳細數(shù)據(jù),如圖38所示。這樣,由于可以在不降低三維物體的外形輪廓的情況下減少圖形繪制引擎的負擔,所以可以提高繪制速度。
為了在通信期間實時發(fā)送和繪制三維數(shù)據(jù)時避免幀下降(framedropping),在公開號為2002-279449的日本未審專利申請公開(第0072段至第0077段)中公開了一種通過采用LOD技術(shù)根據(jù)詳細度級別對物體分類并通過延遲繪制細節(jié)部分而以幀頻避免幀下降的方法。
有許多種LOD技術(shù),一種四叉樹結(jié)構(gòu)(quadtree structure)被廣泛用作適用于具有類似三維地圖的結(jié)構(gòu)的物體數(shù)據(jù)的技術(shù)。
按照該技術(shù),在特定平面如三維地圖上廣泛分布的三維數(shù)據(jù),通過根據(jù)物體的詳細度級別分入處于多個等級級別的節(jié)點,而被記錄,并且在每個等級級別上每個節(jié)點被分成四個節(jié)點。
圖39至41說明了四叉樹結(jié)構(gòu)。
在圖39中,原始數(shù)據(jù)160被分到三個等級級別上的節(jié)點,如節(jié)點161的級別1具有大物體;節(jié)點162的級別2具有中等大小的物體;而節(jié)點163的級別3具有小物體,在每個等級級別上每個節(jié)點被分成四個節(jié)點。從而,可以通過執(zhí)行對每個節(jié)點的繪制來實現(xiàn)LOD,使得為接近觀察點的物體繪制高詳細度級別的節(jié)點,而為遠離觀察點的物體繪制低詳細度級別的節(jié)點。
例如,如圖40所示,如果與攝像機170的距離超過閾值(遠平面)171,則不執(zhí)行繪制。如果與攝像機170的距離在閾值171和閾值172之間,則繪制僅在最低詳細度級別的節(jié)點的地圖。如果與攝像機170的距離在閾值172和閾值173之間,則繪制第二低詳細度級別的節(jié)點的地圖。如果與攝像機170的距離在閾值173和閾值174之間,則繪制第三低詳細度級別的節(jié)點的地圖。如果與攝像機170的距離在閾值174和閾值(近平面)175之間,則繪制最高詳細度級別的節(jié)點的地圖。如果與攝像機170的距離低于閾值175,則不執(zhí)行繪制。
圖41顯示了怎樣實現(xiàn)LOD四叉樹結(jié)構(gòu)。首先,假定存在覆蓋例如地表面的二維寬平面內(nèi)構(gòu)成的整個數(shù)據(jù)空間的正方形180,正方形180被分成四個相等的分平面(divided surface)180a、180b、180c、和180d。多個分平面延伸的組成部分181和182被認為是廣泛延伸的巨大組成部分。因此,組成部分181和182存儲在較高等級級別的節(jié)點190。提供對應(yīng)于各分平面180a、180b、180c、和180d的節(jié)點191a、191b、191c、和191d,作為較低等級級別的子節(jié)點,并且將其它組成部分歸到相應(yīng)的子節(jié)點。
通過根據(jù)需要重復這樣的處理,地圖可以根據(jù)詳細度級別分級構(gòu)成。
具體地,當該方法應(yīng)用于三維地圖時,該地圖可以自動分級構(gòu)成(雖然用于定義等級級別邊界上的物體是例外),如最高等級級別的節(jié)點用于存儲在廣域擴展的山脈、海洋、道路;較低等級級別的節(jié)點用于存儲如建筑物的大結(jié)構(gòu);而最低等級級別節(jié)點用于存儲房子、信號燈、交通標志等等。因此,可以采用LOD技術(shù)有效地繪制三維地圖。
對于以最近已經(jīng)變得很常見的三維汽車導航系統(tǒng)來代表的各種三維導航系統(tǒng),三維地圖必須以高精確度高速實時繪制。然而,用眾所周知的布景圖來表現(xiàn)三維地圖需要處理極大量的數(shù)據(jù),這使得難以進行高速處理。
另外,在眾所周知的四叉樹結(jié)構(gòu)中,作為地標的高大建筑很可能被分到針對小物體的節(jié)點。這樣,遠離觀察點的高大建筑即使在實際可見時也可能被忽略。為了避免這種情況,需要諸如繪制包括高大建筑的節(jié)點的處理。然而,這種用于確定節(jié)點是否包括高大建筑的處理降低了繪制速度并使數(shù)據(jù)省略的重大意義降級。
另外,不僅需要高速繪制,而且需要顯示適于地標的關(guān)注點(POI,pointof interest)信息,例如地圖上用戶指定的建筑物。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明的一個目的是提供一種能夠高速繪制三維地圖的地圖顯示系統(tǒng)、地圖數(shù)據(jù)處理裝置、地圖顯示裝置、和地圖顯示方法。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的具有顯示三維地圖的功能的地圖顯示系統(tǒng)包括地圖數(shù)據(jù)處理部分,用于把三維地圖數(shù)據(jù)分成用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù)和用來繪制該三維地圖中包括的物體的繪制數(shù)據(jù),并處理該布景圖數(shù)據(jù)和該繪制數(shù)據(jù);地圖數(shù)據(jù)顯示部分,用于參考布景圖數(shù)據(jù)指定顯示區(qū)域,并根據(jù)指定顯示區(qū)域讀取和顯示繪制數(shù)據(jù)。
利用這種配置,地圖數(shù)據(jù)處理部分把三維數(shù)據(jù)分成用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù)和用來繪制三維地圖中包括的物體的繪制數(shù)據(jù),并處理該布景圖數(shù)據(jù)和該繪制數(shù)據(jù)。地圖數(shù)據(jù)顯示部分參考布景圖數(shù)據(jù)指定顯示區(qū)域,并根據(jù)指定顯示區(qū)域讀取和顯示繪制數(shù)據(jù)。這樣,就可以高速繪制三維地圖。
另外,根據(jù)本發(fā)明的用于處理三維地圖數(shù)據(jù)的地圖數(shù)據(jù)處理裝置包括存儲單元,用于存儲該三維地圖數(shù)據(jù);以及地圖數(shù)據(jù)處理單元,用于把三維地圖數(shù)據(jù)分成用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù)和用來繪制三維地圖中包括的物體的繪制數(shù)據(jù),并處理該布景圖數(shù)據(jù)和該繪制數(shù)據(jù)。
利用這種配置,該地圖數(shù)據(jù)處理單元把存儲單元中存儲的三維地圖數(shù)據(jù)分成用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù)和用來繪制三維地圖中包括的物體的繪制數(shù)據(jù),并處理該布景圖數(shù)據(jù)和該繪制數(shù)據(jù)。
另外,根據(jù)本發(fā)明的具有顯示三維地圖的功能的地圖顯示裝置包括布景圖數(shù)據(jù)存儲單元,用于存儲用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù);繪制數(shù)據(jù)存儲單元,用于存儲用來繪制三維地圖中包括的物體的繪制數(shù)據(jù);顯示區(qū)域指定單元,用于參考布景圖數(shù)據(jù)指定顯示區(qū)域;數(shù)據(jù)讀取單元,用于根據(jù)指定的顯示區(qū)域讀取繪制數(shù)據(jù);以及顯示處理單元,用于基于所讀取的繪制數(shù)據(jù)執(zhí)行顯示處理。
利用這種配置,顯示區(qū)域指定單元參考布景圖數(shù)據(jù)存儲單元中存儲的布景圖數(shù)據(jù)指定顯示區(qū)域。數(shù)據(jù)讀取單元根據(jù)指定的顯示區(qū)域讀取繪制數(shù)據(jù)。顯示處理單元基于所讀取的繪制數(shù)據(jù)執(zhí)行顯示處理。
另外,根據(jù)本發(fā)明的用于顯示三維地圖的地圖顯示方法包括以下步驟在三維地圖中設(shè)置觀察點和視線;搜索采用具有取決于詳細度級別的多個等級級別的節(jié)點的樹結(jié)構(gòu)來表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù),并根據(jù)從觀察點到每個節(jié)點表示的三維地圖的地表面的距離,基于觀察點和視線來確定是否顯示每個節(jié)點表示的三維地圖;當顯示每個節(jié)點表示的三維地圖時,讀取用于繪制在每個節(jié)點表示的三維地圖中包括的物體的繪制數(shù)據(jù);以及基于所讀取的繪制數(shù)據(jù)執(zhí)行顯示處理。
利用這種配置,在所顯示的三維地圖中設(shè)置觀察點和視線,通過搜索布景圖數(shù)據(jù),根據(jù)從觀察點到每個節(jié)點表示的三維地圖的地表面的距離,基于觀察點和視線來確定是否顯示每個節(jié)點表示的三維地圖。當顯示每個節(jié)點表示的三維地圖時,讀取用于繪制在每個節(jié)點表示的三維地圖中包括的物體的繪制數(shù)據(jù),并基于所讀取的繪制數(shù)據(jù)執(zhí)行顯示處理。
根據(jù)本發(fā)明,由取決于地圖詳細度級別的多個等級級別的節(jié)點來表示樹結(jié)構(gòu),在較低詳細度級別節(jié)點顯示高于預(yù)定閾值的物體。這樣,避免了不顯示作為地標的物體的情況。
另外,通過搜索用戶在屏幕上顯示的三維地圖上指定的物體的布景圖數(shù)據(jù),讀取所搜索物體的關(guān)注點信息。從而,在屏幕上顯示正確的關(guān)注點信息。
因此,本發(fā)明可應(yīng)用于導航系統(tǒng),如汽車導航系統(tǒng)和為步行者顯示到其目的地的路線的步行導航系統(tǒng)。
圖1是說明根據(jù)本發(fā)明實施例的地圖顯示系統(tǒng)的功能的功能方框圖;圖2顯示了由地圖處理部分分類的數(shù)據(jù)結(jié)構(gòu)的例子;圖3示意性地顯示了根據(jù)本發(fā)明實施例的導航系統(tǒng)的結(jié)構(gòu);圖4顯示了根據(jù)本發(fā)明實施例的導航系統(tǒng)的硬件結(jié)構(gòu)的例子;圖5顯示了布景圖數(shù)據(jù)的結(jié)構(gòu);圖6顯示了物體的數(shù)據(jù)結(jié)構(gòu)的例子;圖7說明了物體的POIID;圖8說明了物體的標志;圖9說明了物體的邊界框(bounding box)信息;圖10顯示了要用布景圖數(shù)據(jù)描述的地圖;圖11顯示了在布景圖數(shù)據(jù)中應(yīng)用的XML格式的例子;圖12顯示了用于三維地圖的繪制數(shù)據(jù)的結(jié)構(gòu);圖13說明了地圖信息段的細節(jié);圖14說明了載入信息段的細節(jié);圖15說明了運行時間信息段的細節(jié);圖16A至16J顯示了圖元(primitive)的例子;圖17A至17D說明了矩陣變換指令組;圖18說明了法線指定結(jié)構(gòu)指令;圖19說明了紋理和紋理坐標。
圖20顯示了用二進制格式寫的繪制指令的例子;圖21是說明讀取三維地圖繪制數(shù)據(jù)的處理的流程圖;圖22和23是說明繪制標準三維地圖的處理的流程圖;圖24和25是說明由導航系統(tǒng)執(zhí)行的處理的流程圖;圖26顯示了距離估算所需的要素;圖27是說明確定距離估算的處理的流程圖;圖28說明了包括作為附加要素的高度的四叉樹結(jié)構(gòu);圖29說明了用于指明用戶指定結(jié)構(gòu)的處理;圖30是說明用于指明用戶指定結(jié)構(gòu)的處理的流程圖;圖31和32說明了當限定了要搜索的級別時對物體的搜索;圖33A顯示了作為用布景圖構(gòu)造的物體的三維機器人的例子;圖33B顯示了構(gòu)成物體的部分的例子;
圖34顯示了顯示圖33A所示的物體結(jié)構(gòu)的布景圖的例子;圖35顯示了構(gòu)成用布景圖表現(xiàn)的物體的部分的配置;圖36至38說明了LOD技術(shù);和圖39至41說明了四叉樹結(jié)構(gòu)。
具體實施例方式
本發(fā)明的實施例將參考附圖進行描述。
圖1是根據(jù)本發(fā)明實施例的地圖顯示系統(tǒng)10的功能的功能方框圖。
地圖顯示系統(tǒng)10包括地圖數(shù)據(jù)處理部分10a,用于處理由地圖制作公司等提供的原始地圖數(shù)據(jù)和原始POI信息,其包括由地圖制作公司或各種信息提供公司提供的有關(guān)地圖中特定POI的信息;地圖數(shù)據(jù)顯示部分10b,用于基于處理信息執(zhí)行顯示處理。
地圖數(shù)據(jù)處理部分10a包括原始三維地圖數(shù)據(jù)庫11,用于存儲原始三維地圖數(shù)據(jù);地圖處理單元12,用于把原始三維地圖分成用樹結(jié)構(gòu)表示原始三維地圖的結(jié)構(gòu)的布景圖數(shù)據(jù)和繪制包括在三維地圖中的物體的繪制數(shù)據(jù),并用于處理該布景圖數(shù)據(jù)和該繪制數(shù)據(jù);原始POI信息數(shù)據(jù)庫21,用于存儲原始POI信息;和POI信息處理單元22,用于處理該原始POI信息。
另外,該地圖數(shù)據(jù)顯示部分10b包括布景圖數(shù)據(jù)庫13,用于存儲由地圖處理單元12分類的布景圖數(shù)據(jù);三維地圖數(shù)據(jù)庫14,用于存儲繪制三維地圖所需的繪制數(shù)據(jù);當前位置指定單元15,用于指定當前位置;布景圖管理單元16,用于管理布景圖數(shù)據(jù);攝像機位置設(shè)置單元17,用于在三維地圖中設(shè)置觀察點和視線;顯示區(qū)域指定單元18,用于通過以基于要繪制的三維空間中的觀察點和視線數(shù)據(jù),參考布景圖數(shù)據(jù),來指定顯示區(qū)域;數(shù)據(jù)讀取單元19,用于根據(jù)來自三維地圖數(shù)據(jù)庫14的指定顯示區(qū)域讀取繪制數(shù)據(jù);顯示處理單元20,用于基于所讀取的繪制數(shù)據(jù)執(zhí)行顯示處理;和POI信息數(shù)據(jù)庫23,用于存儲在POI信息處理單元22中處理過的POI信息。
圖2顯示了由地圖處理單元12分類的數(shù)據(jù)結(jié)構(gòu)的例子。
在布景圖數(shù)據(jù)庫13中存儲的布景圖數(shù)據(jù)中,用樹結(jié)構(gòu)來描述原始三維地圖數(shù)據(jù)庫11中的整個廣域地圖的數(shù)據(jù)結(jié)構(gòu)。雖然一般的布景圖數(shù)據(jù)可以應(yīng)付(manage)多種樹結(jié)構(gòu),但這里所用的布景圖數(shù)據(jù)在功能上是專用于地圖的。這樣,該數(shù)據(jù)結(jié)構(gòu)可以被簡化,并且處理速度可以提高。
這里所用的樹結(jié)構(gòu)根據(jù)三維地圖的詳細度級別有處于多個等級級別的節(jié)點。處于最高等級級別的節(jié)點用于顯示最低詳細度級別。節(jié)點的等級級別越低,所顯示的詳細度級別就越高。
如圖2所示,本實施例中的布景圖數(shù)據(jù)結(jié)構(gòu)專用于四叉樹結(jié)構(gòu)。換句話說,用每個節(jié)點在各個等級級別被分成四個節(jié)點的結(jié)構(gòu)來描述廣域三維地圖。
用可擴展標記語言(XML)來描述這樣的樹結(jié)構(gòu)有助于進行編輯和瀏覽。
相反地,以順序執(zhí)行數(shù)據(jù)格式,更具體地,使用以一一對應(yīng)關(guān)系與繪制三維地圖所需的三維繪制API的繪制指令相對應(yīng)的二進制數(shù)據(jù),而不使用諸如材料幾何(material geometry)的常用結(jié)構(gòu)數(shù)據(jù),來寫入用于繪制三維地圖中包括的建筑物和地形(在下文中,稱為物體)的繪制數(shù)據(jù)。從而,將數(shù)據(jù)轉(zhuǎn)換成繪制指令所花費的時間的減少提高了繪制速度,而用二進制數(shù)據(jù)來描述減小了數(shù)據(jù)大小。
繪制數(shù)據(jù)和用四叉樹結(jié)構(gòu)劃分的地圖區(qū)域相關(guān)聯(lián),下面將進行描述,多個繪制數(shù)據(jù)段被記錄在三維地圖數(shù)據(jù)庫14中。
現(xiàn)在對圖1所示的地圖顯示系統(tǒng)10的操作進行描述。
在地圖數(shù)據(jù)處理部分10a中,從原始三維地圖數(shù)據(jù)庫11中捕獲(capture)原始三維地圖數(shù)據(jù)。地圖處理單元12把原始三維地圖數(shù)據(jù)分成布景圖數(shù)據(jù)和繪制數(shù)據(jù),布景圖數(shù)據(jù)和繪制數(shù)據(jù)被分別存儲在布景圖數(shù)據(jù)庫13和三維地圖數(shù)據(jù)庫14中。同樣,從原始POI信息數(shù)據(jù)庫21中捕獲原始POI信息。POI信息處理單元22處理要存儲在POI信息數(shù)據(jù)庫23中的原始POI信息。
然后,在地圖數(shù)據(jù)顯示部分10b中,當前位置指定單元15在地圖上指定當前位置。基于這個信息,布景圖管理單元16從布景圖數(shù)據(jù)庫13中讀取布景圖數(shù)據(jù)的結(jié)構(gòu)。
布景圖管理單元16把關(guān)于布景圖數(shù)據(jù)讀取結(jié)構(gòu)的信息發(fā)送到顯示區(qū)域指定單元18。顯示區(qū)域指定單元18從攝像機位置設(shè)置單元17獲取要繪制的三維空間中的觀察點和視線數(shù)據(jù),并根據(jù)指定的當前位置以及觀察點和視線數(shù)據(jù),參考布景圖數(shù)據(jù),指定顯示區(qū)域。在這里,如果布景圖數(shù)據(jù)采用四叉樹結(jié)構(gòu),如圖2所示,通過考慮空間中攝像機的位置和布景圖數(shù)據(jù)中每個節(jié)點的位置,指定顯示區(qū)域(指定顯示區(qū)域的細節(jié)將在下面描述)。數(shù)據(jù)讀取單元19根據(jù)指定的顯示區(qū)域從三維地圖數(shù)據(jù)庫14中讀取繪制數(shù)據(jù),而顯示處理單元20執(zhí)行用于在屏幕上繪制的顯示處理。
另外,如果用戶需要表示有關(guān)POI如屏幕上顯示的特定建筑物的信息,將適用于由用戶指定的物體的POI信息從POI信息數(shù)據(jù)庫23發(fā)送到數(shù)據(jù)讀取單元19,并與地圖一起顯示。
將通過采用下面描述的導航系統(tǒng)對根據(jù)本發(fā)明實施例的地圖顯示裝置進行描述。
圖3示意地顯示了根據(jù)本發(fā)明實施例的導航系統(tǒng)的結(jié)構(gòu)。
這樣的導航系統(tǒng)包括汽車導航裝置30和全球定位系統(tǒng)(GPS)31的組合或安裝有步行導航裝置的便攜式終端40(如個人數(shù)字助理(PDA)或移動電話)和GPS41的組合。在這樣導航系統(tǒng)中,在諸如陰極射線管(CRT)或液晶顯示器的顯示設(shè)備的屏幕50上顯示以圖3所示當前位置為中心的鳥瞰三維地圖。
這樣的導航系統(tǒng)可以用來顯示以當前位置為中心的城鎮(zhèn)景觀,以及用來顯示用于模擬路線(course)的運動的運動圖片,從而在GPS31或41指示的位置的基礎(chǔ)上向用戶提供從指定出發(fā)點到目的地的導航。
圖4顯示了根據(jù)本發(fā)明實施例的導航系統(tǒng)的硬件結(jié)構(gòu)的例子。
該導航系統(tǒng)包括GPS60、信息處理設(shè)備61、顯示設(shè)備62、外部存儲設(shè)備63、和外部輸入設(shè)備64。信息處理設(shè)備61包括3D圖形繪制引擎61a、隨機存取存儲器(RAM)61b、只讀存儲器(ROM)61c、中央處理單元(CPU)61d、和對外部設(shè)備的接口61e。
GPS60用于獲知當前位置。
3D圖形繪制引擎61a是能根據(jù)來自CPU61d的指令在顯示設(shè)備62上顯示各種類型文本和圖形如三維圖形的硬件。
RAM61b臨時存儲CPU61d將要執(zhí)行的程序和要計算的數(shù)據(jù)。
ROM61c存儲CPU61d將要執(zhí)行的基礎(chǔ)程序和數(shù)據(jù)。
三維圖形API,例如Open-GL(注冊商標),存儲在RAM61b或ROM61c中,其將繪制指令發(fā)送到3D圖形繪制引擎61a,并且是實現(xiàn)三維圖形的繪制所必需的。
CPU61d根據(jù)RAM61b或ROM61c中存儲的程序控制信息處理設(shè)備61的每個單元。
接口61e控制GPS60、外部存儲設(shè)備63、外部輸入設(shè)備64、和CPU61d之間的信息輸入和輸出。
顯示設(shè)備62是,例如,CRT或液晶顯示器。顯示設(shè)備62在屏幕上顯示由3D圖形繪制引擎61a處理過的視頻信號。
外部存儲設(shè)備63是,例如,光盤只讀存儲器(CD-ROM)、數(shù)字化通用盤(DVD)、硬盤驅(qū)動器(HDD)、或Memory Stick(注冊商標)。各種類型的信息,例如地圖,存儲在外部存儲設(shè)備63。
外部輸入設(shè)備64是,例如,汽車導航裝置的遠程控制器、PDA屏的觸摸板、或各種按鈕。外部輸入設(shè)備64把用戶控制導航系統(tǒng)所需的信息發(fā)送到CPU61d。
現(xiàn)在對這樣導航系統(tǒng)的操作進行示意性說明。
當CPU61d執(zhí)行RAM61b或ROM61c中記錄的導航程序時,根據(jù)從GPS60或外部輸入設(shè)備64獲取的信息,從外部存儲設(shè)備63通過外部設(shè)備接口61e讀取相應(yīng)區(qū)域的地圖信息,并把該地圖信息寫入RAM61b。當CPU61d執(zhí)行地圖繪制程序時,根據(jù)該信息把地圖繪制指令發(fā)布到三維圖形API。然后,根據(jù)該指令,繪制信號被發(fā)送到3D圖形繪制引擎61a,在顯示設(shè)備62上顯示該地圖。
在圖4所示的導航系統(tǒng)中,外部存儲設(shè)備63中記錄的地圖信息對應(yīng)于圖1中所示的布景圖數(shù)據(jù)庫13、三維地圖數(shù)據(jù)庫14、和POI信息數(shù)據(jù)庫23。另外,圖1中所示的當前位置指定單元15、布景圖管理單元16、攝像機位置設(shè)置單元17、顯示區(qū)域指定單元18、數(shù)據(jù)讀取單元19、和顯示處理單元20作為由CPU61d執(zhí)行的指令組記錄在圖4中所示的RAM61b或ROM61c中。
圖1中所示的地圖數(shù)據(jù)處理部分10a是,例如,個人計算機(PC),并包括存儲設(shè)備,用于記錄原始三維地圖數(shù)據(jù)庫11和原始POI信息數(shù)據(jù)庫21,雖然沒有對這些進行圖解。另外,例如,地圖數(shù)據(jù)處理部分10a包括CPU。在CPU的控制下,地圖數(shù)據(jù)處理部分10a把原始三維數(shù)據(jù)分成布景圖數(shù)據(jù)和繪制數(shù)據(jù),并處理該布景圖數(shù)據(jù)和繪制數(shù)據(jù)。
現(xiàn)在描述由地圖數(shù)據(jù)處理部分10a分類和處理的布景圖數(shù)據(jù)和三維地圖繪制數(shù)據(jù)。
圖5顯示了布景圖數(shù)據(jù)的結(jié)構(gòu)的例子。
這里,布景圖數(shù)據(jù)專用于四叉樹結(jié)構(gòu)。
在布景圖數(shù)據(jù)中,完整的地圖70被分成多個區(qū)域71。每個區(qū)域71用經(jīng)度和緯度來定義。在圖5所示的例子中,一個區(qū)域71描述為由用西北經(jīng)度和維度72a表示的西北邊緣的經(jīng)度和緯度和用東南經(jīng)度和維度72b表示的東南邊緣的經(jīng)度和緯度指定的區(qū)域。用具有四叉樹結(jié)構(gòu)的節(jié)點73的樹來描述表示該區(qū)域的地圖結(jié)構(gòu)。使得節(jié)點73具有四個子節(jié)點76的結(jié)構(gòu)一直重復,直到達到四叉樹等級級別的設(shè)定數(shù)目。在下文中,節(jié)點樹的等級級別將用術(shù)語“級別”來表示。作為根的節(jié)點73的級別被定義為級別1,四個子節(jié)點76中的每一個的級別被定義為級別2,每個子節(jié)點76的子節(jié)點的級別被定義為級別3,等等。
除了子節(jié)點76之外,組成節(jié)點73的組分是節(jié)點73的三維地圖數(shù)據(jù)的文件名(File3D)74和多個物體75,例如地圖上存在的建筑物和道路。
圖6顯示了一個物體75的數(shù)據(jù)結(jié)構(gòu)的例子。
一個物體75包括物體名稱77、一個作為POI的物體75的ID POIID78、指示一個物體75的標志79、和關(guān)于一個物體75的邊界框信息80。
圖7說明了一個物體75的POIID78。
該POIID78指示了POI信息數(shù)據(jù)庫23中的POI信息23a的ID。例如,如果一個物體75表示東京塔,則POIID78表示POI信息數(shù)據(jù)庫23中關(guān)于東京塔的POI信息23a。
圖8說明了一個物體75的標志79。
標志79表示三維地圖的繪制數(shù)據(jù)中對應(yīng)于在其中描述關(guān)于這一個物體75的數(shù)據(jù)的這一個區(qū)域71的一部分中記錄的標志的ID。例如,如果對應(yīng)于圖5所示的一個區(qū)域71的三維地圖的繪制數(shù)據(jù)是由三維地圖數(shù)據(jù)庫14中存儲的文件名74指定的用于三維地圖的繪制數(shù)據(jù)14a,如圖8所示,則與這一個物體75的數(shù)據(jù)相對應(yīng)的繪制數(shù)據(jù)14a中的繪制區(qū)域14a-1中預(yù)先描述的標志的ID由在布景圖數(shù)據(jù)中的標志79指定。
圖9說明了物體75a和75b的邊界框信息80。
邊界框信息80包括覆蓋物體75a和75b各自所在區(qū)域的立方體的坐標(coordinate)81a和81b,如圖9所示。坐標81a和81b是用來獲知物體75a和75b之間的空間位置關(guān)系的數(shù)據(jù)。
根據(jù)以上詳細描述,布景圖數(shù)據(jù)可以如下所示以XML格式來寫出。
圖10顯示了用布景圖數(shù)據(jù)描述的地圖。
圖11顯示了以XML格式寫出的布景圖數(shù)據(jù)的例子。
在圖10中,表示東京市區(qū)及郊區(qū)(Greater Tokyo Area)的地圖82被分成多個地圖區(qū)域83。多個地圖區(qū)域83與從圖5所示地圖70中劃分出的多個區(qū)域71相對應(yīng)。例如,表示Ota-ku的西北部分的地圖區(qū)域83以XML格式寫出,如圖11所示。
現(xiàn)在根據(jù)圖5所示的布景圖數(shù)據(jù)對圖11中的描述進行說明。
″Northwest Part of Ota-ku″被描述為一個區(qū)域71。然后,以西北經(jīng)度和緯度72a和東南經(jīng)度和緯度72b來指定經(jīng)緯度。然后,″otaku-NW-root″被描述為文件名74,其中描述了關(guān)于對應(yīng)于三維地圖的繪制數(shù)據(jù)。然后,指定多個物體75。
每個物體75的數(shù)據(jù)結(jié)構(gòu)如圖6所示配置。在圖11所示的例子中,″JROmori Station″、″Omori Police Station″等,以名稱77來描述。為每個物體75描述POIID78、標志79、和邊界框信息80。例如,對于以描述″JR OmoriStation″作為名稱77的一個物體75,提供了描述″<Object Name=″JR OmoriStation″POIID=″JR_OmoriStation″Tag=″1″Bbox=″12,100,5,30,5,40,...″/>″。上面的描述意思是對″JR Omori Station″的繪制數(shù)據(jù)記錄在″otaku-NW-root″中提供了標志1的那部分中。
每個區(qū)域71根據(jù)圖5中所示的四個子節(jié)點76被分成四個區(qū)域。對每個區(qū)域描述文件名和多個物體,如上所述。在圖11中所示的例子中,″otaku-NW-01″、″otaku-NW-02″、″otaku-NW-03″、和″otaku-NW-04″作為文件名而被描述。從而,控制了子節(jié)點76的三維繪制數(shù)據(jù)的位置。
現(xiàn)在參考圖12對用于三維地圖的繪制數(shù)據(jù)的結(jié)構(gòu)進行描述。
例如,在地圖數(shù)據(jù)處理部分10a中的CPU的控制下,以二進制格式寫繪制數(shù)據(jù)。繪制數(shù)據(jù)的內(nèi)容被大致分成地圖信息段84、載入信息段85、和運行時間信息段86。
現(xiàn)在描述每個組成繪制數(shù)據(jù)的段。
圖13說明了地圖信息段84的細節(jié)。
地圖信息段84包括繪制三維圖形的右手坐標系統(tǒng)的三維空間內(nèi)以及由經(jīng)度和緯度表示的地圖體現(xiàn)的真實空間內(nèi)的縮放比例信息。更具體地,通過用由X-、Y-、和Z-軸定義的一般三維右手坐標系統(tǒng),地表面在XZ-平面87上表現(xiàn)。地圖信息段84包括在空間地圖區(qū)域展開(develop)的三維地圖的繪制數(shù)據(jù)的左上端點88和右下端點89的坐標。地圖信息段84還包括分別對應(yīng)于真實區(qū)域90的西北端點和東南端點的坐標91和92的經(jīng)度和緯度。為了繪制,根據(jù)這些信息執(zhí)行縮放。
圖14說明了載入信息段85的細節(jié)。
載入信息段85包括表示物體外觀的材料、紋理(texture)、和顏色的信息列表。在這里定義了多種材料、紋理、和顏色,它們按照定義的次序編號直到定義的數(shù)目。
在材料列表中,用RGB或RGBA格式指定表示材料外觀的環(huán)境顏色、漫射顏色、反射顏色、和輻射顏色。材料列表還包括表示光的反射的反射系數(shù)。在材料列表中定義了多種顏色。
紋理列表包括要附加到三維物體上的圖像,如建筑物的墻面。真實紋理記錄在圖1所示的三維地圖數(shù)據(jù)庫14中,作為用原始或公知的圖像格式,如聯(lián)合攝影編碼專家組(JPEG)格式或圖形交換格式(GIF),記錄的圖像數(shù)據(jù)。紋理列表包括圖像的文件名。
顏色列表包括以RGB或RGBA格式寫的物體顏色。
圖15說明了運行時間信息段86的細節(jié)。
圖12所示的運行時間信息段86包括用于繪制三維地圖的繪制指令和用于提供繪制指令所在區(qū)域的ID的標志指令。標志指令用于指定嵌入在地圖中的物體的繪制區(qū)域,如地圖中的特定建筑物和道路。標志指令還指定該標志的ID和區(qū)域。該段中嵌入了多個標志指令。標志的ID對應(yīng)于在布景圖數(shù)據(jù)中指定其ID的物體的標志。
繪制指令大致分為繪制開始指令、矩陣變換指令組、矩陣推進(push)和取出(pop)指令、材料指定指令、紋理指定指令、顏色指定指令、法線指定指令、紋理頂點指定指令、頂點繪制指令、和繪制終止宣告指令。這些指令對應(yīng)于諸如Open-GL的一般三維圖形庫的基本繪制指令。
現(xiàn)在對上面提到的每個繪制指令進行描述。
繪制開始指令宣告三維圖形的繪制開始,并宣告所用的圖元的類型。
圖16A至16J顯示了圖元的例子。
術(shù)語“圖元(primitive)”指要繪制的多邊形的類型。圖元由頂點v0、v1、v2等等來指定,如圖16A中的點、圖16B中的線條、圖16C中的線條帶(strip)、圖16D中的線路回路、圖16E中的三角形、圖16F中的三角形帶、圖16G中的三角形扇、圖16H中的四邊形、圖16I中的四邊形帶、和圖16J中的多邊形(N邊多邊形)所示。
繪制開始指令對應(yīng)于Open-GL的glBegin()指令。同樣地,繪制終止宣告指令對應(yīng)于Open-GL的glEnd()指令。根據(jù)繪制開始指令和繪制終止宣告指令之間提供的頂點繪制指令,在三維空間繪制多邊形。
圖17A至17D說明了矩陣變換指令組。
矩陣變換指令組被提供用于三維空間中的矩陣處理,如在空間中繪制的物體向原點的移動、平移、旋轉(zhuǎn)、和縮放,分別如圖17A至17D所示。當執(zhí)行這樣的指令時,設(shè)置當前物體的參數(shù),如要繪制物體的位置、相對于坐標軸的旋轉(zhuǎn)角、和縮放因子。而且,這些指令可以組合。
向原點移動、平移、旋轉(zhuǎn)、和縮放的指令分別對應(yīng)于Open-GL的glLoadIdentity()指令、glTranslate()指令、glRotate()指令、和glScale()指令。
矩陣推進和取出指令用于存儲或恢復用于當前物體的矩陣變換指令的參數(shù)。矩陣推進和取出指令對應(yīng)于Open-GL的glPushMatrix()指令和glPopMatrix()指令。通過它們的組合,可以繪制樹上的布景圖結(jié)構(gòu)。
材料指定指令、紋理指定指令、和顏色指定指令指定由載入信息指定的材料、紋理、和顏色的ID作為物體當前的外觀、紋理、和顏色。
法線指定指令、紋理頂點指定指令、和頂點繪制指令在繪制開始指令和繪制終止宣告指令之間分別指定用于為了寫入而進行計算的法線(normal)、紋理頂點的坐標、和空間中指定圖元的頂點。
圖18說明了法線指定指令。
為要繪制的表面93和頂點v0、v1、和v2指定法線n0、n1、和n2。
圖19說明了紋理和紋理坐標。
在紋理頂點指定指令中,根據(jù)由紋理指定指令預(yù)先指定的當前圖像,從由載入信息段85預(yù)先指定的紋理圖像94中指定要附到表面95上的部分的坐標t0、t1、t2、t3,并給出附著圖像的指令。
類似地,為指定的頂點和表面指定由顏色指定指令指定的當前顏色。
同樣地,頂點繪制指令指定當前圖元的頂點坐標。
下面將描述這樣以二進制格式寫出的繪制指令。
圖20顯示了以二進制格式寫出的繪制指令的例子。
每個指令的基本長度有取決于基本段長度的固定字節(jié)數(shù)。例如,如果段長度是2字節(jié),則定義指令的基本段(指令單元段)96的單元是2字節(jié)。另外,為了表示指令所需的多個參數(shù),除了指令單元段96之外,還定義了參數(shù)單元段97。指令單元段96和參數(shù)單元段97被分離配置,因為與類型有限的繪制指令不同,數(shù)據(jù)通常需要有4字節(jié)或更多字節(jié)來表示真實的數(shù)目,如空間坐標。
根據(jù)特性,繪制指令被分成1段指令和2段或更多段指令,如圖20所示。2段或更多段指令有含指令單元段和兩個或更多個參數(shù)段的結(jié)構(gòu)。
例如,不需要任何參數(shù)的繪制終止宣告指令是1段指令。由2段指令載入信息段85設(shè)置的具有圖元類型參數(shù)的繪制開始指令以及分別具有作為材料、紋理、和顏色指標的參數(shù)的材料指定指令、紋理指定指令、和顏色指定指令是2段指令。
另外,具有兩個參數(shù)如紋理圖像的坐標(二維XY坐標)的紋理頂點指定指令、以及雖不是繪制指令但也有標志的ID和長度參數(shù)的標志指令是3段指令。另外,具有三個參數(shù)如三維空間坐標的頂點指定指令是4段指令。參數(shù)的數(shù)量是根據(jù)指令的類型和需要來確定的。
原始POI信息也同樣被處理,使得添加了對應(yīng)于與每個物體75相關(guān)聯(lián)的POIID78的ID,如圖6所示。
如上所示,由地圖數(shù)據(jù)處理部分10a處理后的布景圖數(shù)據(jù)、繪制數(shù)據(jù)、POI信息等被提供給圖4所示的導航系統(tǒng),并被記錄在外部存儲設(shè)備63中。由地圖數(shù)據(jù)處理部分10a處理的數(shù)據(jù)可以記錄在CD-ROM或DVD上,以用來提供??蛇x擇地,數(shù)據(jù)可以通過諸如因特網(wǎng)的網(wǎng)絡(luò)來提供。
雖然可以通過實時順序下載,在導航系統(tǒng)上顯示紋理圖像,以便不引起幀下降,但是優(yōu)選地是,根據(jù)處理速度等在使用之前把數(shù)據(jù)記錄在導航系統(tǒng)的外部存儲設(shè)備63中。
如上所述,在本實施例中,由于為圖4所示的導航系統(tǒng)中使用的具有處理速度較慢的CPU61d的信息處理設(shè)備61,而預(yù)先執(zhí)行了用于減少計算量的數(shù)據(jù)處理,所以可以減少導航系統(tǒng)的處理負荷。
現(xiàn)在描述由圖4所示的導航系統(tǒng)執(zhí)行的處理的細節(jié)。
現(xiàn)在參照圖21所示的流程圖描述讀取三維地圖的繪制數(shù)據(jù)的處理。
稍后將對利用布景圖數(shù)據(jù)的全部處理進行描述。
當讀取三維地圖的繪制數(shù)據(jù)的處理開始時,在CPU61d的控制下,通過接口61e從在三維地圖數(shù)據(jù)庫14中描述并記錄在外部存儲設(shè)備63中的繪制數(shù)據(jù)中讀取地圖信息段84,獲取要為其繪制地圖的區(qū)域,并記錄在RAM61b中(步驟S1)。
然后,執(zhí)行載入信息段85的讀取和記錄。這里,在CPU61d的控制下,圖14所示的材料數(shù)據(jù)被讀取和記錄在RAM61b中(步驟S2),從紋理數(shù)據(jù)中讀取所需紋理的文件名,并將其載入,以記錄在RAM61b中(步驟S3)。然后,顏色數(shù)據(jù)被讀取和記錄在RAM61b中(步驟S4)。
讀取運行時間信息段86(步驟S5),確定是否出現(xiàn)了標志指令(步驟S6)。如果出現(xiàn)了標志指令,則將標志的位置、ID、和長度記錄在RAM61b中(步驟S7),處理進入步驟8。如果沒有出現(xiàn)標志,則將所讀取的運行時間信息記錄在RAM61b中(步驟S8)。CPU61d確定整個運行時間信息段86的讀取是否已完成(步驟S9)。重復從步驟S6起的處理步驟,直到已讀取了整個運行時間信息段86。當已讀取了整個運行時間信息段86時,終止讀取三維地圖的繪制數(shù)據(jù)的處理。
現(xiàn)在參照圖22和23所示的流程圖介紹繪制標準三維地圖的處理。
當繪制三維地圖的處理開始時,訪問RAM61b中的運行時間信息段86的第一地址。獲取運行時間信息(步驟S10),并讀取第一繪制指令段(步驟S11)。然后,確定是否設(shè)置了矩陣相關(guān)指令,如矩陣變換指令或推進和取出指令(步驟S12)。如果設(shè)置了矩陣相關(guān)指令,則在必要時獲取參數(shù)(步驟S13),執(zhí)行該指令(步驟S14)。讀取下一個指令段(步驟S15),處理進入步驟S16。從而,預(yù)先定義要繪制的圖元的當前位置、縮放比例、旋轉(zhuǎn)等。如果沒有設(shè)置矩陣相關(guān)指令,則處理進入步驟S16。
在步驟S16中,確定是否給出了圖元開始指令。如果給出了圖元開始指令,則獲取表示指定圖元類型的參數(shù)(步驟S17),并將其設(shè)置為當前圖元(步驟S18)。然后,在圖23中處理進入步驟S19。如果沒有給出圖元開始指令,則處理返回到步驟S12。
在步驟S18中設(shè)置當前圖元后,要指定的頂點用作指定圖元的頂點,直到發(fā)布繪制終止宣告指令。例如,如果圖元的類型是三角形,如圖16E所示,則要指定的頂點以指定順序用作三角形的頂點。
分別在步驟S19、S22、和S25中執(zhí)行對是否已讀取顏色指定指令、材料指定指令、紋理指定指令的確定。如果已經(jīng)讀取了顏色指定指令、材料指定指令、和紋理指定指令,則分別在步驟S20、S23、和S26中獲取表示各自的ID的參數(shù)。(分別在步驟S21、S24、和S27)為當前紋理指定設(shè)置在載入信息段85中的相應(yīng)的顏色、材料、和紋理。在指定之后,讀取下一個指令段(步驟S38),處理返回到步驟S19。
如果在步驟S19、S22、和S27中,都分別沒有讀取顏色指定指令、材料指定指令、和紋理指定指令,則確定是否已讀取了法線指定指令(步驟S28)。如果已經(jīng)讀取了法線指定指令,則獲取法向矢量的參數(shù)(步驟S29),并設(shè)置當前頂點的法線(步驟S30)。然后,處理進入步驟S38。
如果沒有讀取法線指定指令,則確定是否已讀取了紋理頂點指定指令(步驟S31)。如果已經(jīng)讀取了紋理頂點指定指令,則獲取紋理頂點的坐標參數(shù)(步驟S32),并設(shè)置當前紋理頂點(步驟S33)。然后,處理進入步驟S38。
如果沒有讀取紋理頂點指定指令,則確定是否已讀取了頂點繪制指令(步驟S34)。如果已經(jīng)讀取了頂點繪制指令,則獲取頂點坐標參數(shù)(步驟S35),并設(shè)置圖元的頂點(步驟S36)。然后,處理進入步驟S38。例如,如果圖元的類型是三角形,則當指定了三個頂點時,繪制包含具有當前紋理、當前材料、或當前顏色的三角形。
重復上述處理,直到出現(xiàn)繪制終止宣告指令。換句話說,確定是否出現(xiàn)了繪制終止宣告指令(步驟S37)。如果確定沒有出現(xiàn)繪制終止宣告指令,則在步驟S38中讀取下一個指令段,而處理返回到步驟S19。如果出現(xiàn)了繪制終止宣告指令,則調(diào)用對應(yīng)的三維圖形API,并向圖4所示的3D圖繪制引擎61a發(fā)布繪制指令(步驟S39)。
重復這樣的處理,直到已讀取了運行時間信息段86中的所有數(shù)據(jù)。換句話說,確定是否已經(jīng)完成對運行時間信息段86的讀取(步驟S40)。如果確定已經(jīng)讀取了運行時間信息段86中的所有數(shù)據(jù),則繪制處理終止。如果沒有讀取所有數(shù)據(jù),則重復從步驟S12起的處理步驟。
現(xiàn)在描述布景圖數(shù)據(jù)的結(jié)構(gòu)和由使用根據(jù)上述處理顯示的三維地圖繪制數(shù)據(jù)的導航系統(tǒng)執(zhí)行的處理。
圖24和25顯示了由導航系統(tǒng)執(zhí)行的處理。
首先,在CPU61d的控制下執(zhí)行啟動系統(tǒng)所需的處理(步驟S50)。稍后將對步驟S50的細節(jié)進行描述。
然后,由接口61e接收用戶使用外部輸入裝置64設(shè)置的關(guān)于觀察點的信息,并且在CPU61d的控制下,該觀察點的信息是固定的(步驟S51)。然后,CPU61d將圖5所示的布景圖數(shù)據(jù)的節(jié)點樹中要搜索的節(jié)點的級別L設(shè)置為1(=根節(jié)點)(步驟S52),用在級別L的節(jié)點數(shù)替換節(jié)點數(shù)N(步驟S53)。對于根節(jié)點,這個值是1。對于根節(jié)點的每個子節(jié)點,這個值是4。
然后,把常數(shù)I設(shè)置為0(步驟S54),把在級別L的第I節(jié)點設(shè)置為當前節(jié)點(步驟S55)。然后,估算當前節(jié)點的距離(步驟S56)。后面將說明對距離進行估算的細節(jié)。
然后,確定對當前節(jié)點距離的估算結(jié)果是否在可繪制區(qū)域內(nèi)(步驟S57)。換句話說,如果估算結(jié)果在為每個級別設(shè)置的閾值內(nèi),或者說,如果估算結(jié)果小于到邊界的距離,如圖40所示,則讀取對應(yīng)節(jié)點的區(qū)域的地圖的繪制數(shù)據(jù)(步驟S58)。然后,常數(shù)I加1(步驟S59)。重復從步驟S55起的處理步驟,直到在步驟S60確定常數(shù)I達到了在級別L的節(jié)點數(shù)N。如果常數(shù)I達到了在級別L的節(jié)點數(shù)N,則級別L加1(步驟S61)。重復從步驟S53起的處理步驟,直到在步驟S62確定已經(jīng)估算了在所有級別的節(jié)點。如果已經(jīng)估算了所有級別的節(jié)點,則根據(jù)在步驟S58中讀取的三維地圖繪制數(shù)據(jù),通過圖21、22、和23所示的處理利用3D圖繪制引擎61a繪制三維地圖,并顯示在顯示設(shè)備62上(步驟S63)。
現(xiàn)在說明圖24的步驟S56中執(zhí)行距離估算的細節(jié)。
因為上述處理所需的距離估算重復多次,所以估算必須以盡可能高的速度來執(zhí)行。因此,采用下面描述的方法。
圖26顯示了距離估算所需的要素。
這里,m表示當前級別,坐標(C0、C1、C2)表示要估算距離的當前節(jié)點的地表面100上的中心點C。然后,(P0、P1、P2)表示攝像機的位置P,而(V0、V1、V2)表示攝像機的視線矢量V。
此外,當由(V0、0、V2)表示具有與視線矢量V相同的X和Z分量并與XZ-平面平行的矢量V′時,定義具有用作視線矢量V′的垂直線并通過點P的平面101。另外,為用作LOD距離估算的基準的平面稱為基準平面S。
另外,d表示從基準平面S到當前地表面100的距離,lm表示從基準平面S到用于確定是否繪制在當前級別m上的地表面的基準線的距離。
參照上述定義,距離估算定義如下lm>d=|V0(C0-P0)+V2(C2-P2)|/(V02+V22)1/2......(1)更具體地,如果滿足公式(1),則繪制該平面上的地圖。公式(1)表示從基準平面S到當前地表面100的中心點C的距離。通常,LOD計算僅根據(jù)相對于觀察點的位置。然而,利用公式(1)的估算對導航三維地圖是最有效的。這是因為精確繪制接近屏幕還有觀察點(攝像機位置P)的區(qū)域的地圖是更有效的。另外,這還因為觀察點(攝像機位置P)接近地表面100,其中有平行于地表面的視角,或者為導航用的三維地圖使用了地表面100和視線矢量V之間為銳角的鳥瞰圖。
而且,公式(1)的距離估算把計算的維數(shù)限定在二維。這樣,可以實現(xiàn)比常規(guī)距離估算減少一維的距離估算。所以,計算總量減少了。
這里,一般的,對于CPU61d執(zhí)行的計算,加減運算需要較小花費。乘法需要稍高一點的花費,而特別計算,如公式(1)中用到的除法和平方根計算,需要較大花費。因此,通過簡單計算,下面描述的同等的估算公式可以從公式(1)通過消除這種沉重負荷而推導出。
lm>dlm2>d2(根據(jù)1m,d>0)lm2-d2>0lm2-(V0(C0-P0)+V2(C2-P2))2/(V02+V22)>0lm2(V02+V22)-(V0(C0-P0)+V2(C2-P2))2>0 ......(2)然后,將不需要循環(huán)計算的參數(shù)預(yù)先定義為固定常數(shù)。固定觀察點后(圖24中的步驟S51),對表示地表面的多個節(jié)點進行距離估算。這樣,在此期間,因為觀察點(攝像機位置P)和視線矢量V是固定的,所以表示坐標值的V0和V2也是固定的。這樣,(V02+V22)也是固定不變的,在這個階段把該值設(shè)置成常數(shù)W。
此外,因為距離lm也是固定的常數(shù),所以對于每個級別m,lm2是固定常數(shù)。這里,把lm2定義為Lm。因為該值將一直是固定不變的,所以其在啟動系統(tǒng)的處理(圖24中的步驟S50)過程中預(yù)先定義。類似地,通過將V0(C0-P0)+V2(C2-P2)定義為常數(shù)D,得到下面的估算公式LmW-D2>0 ......(3)圖27是說明確定距離估算的處理的流程圖。
確定距離估算的處理分布在整個繪制處理過程中,該處理大致分為三個階段。
在第一階段中,隨著啟動系統(tǒng)的處理過程而計算Lm(該計算與圖24中的步驟S50相對應(yīng))。這里,級別m設(shè)置為1(步驟S70),用預(yù)先為每個級別m設(shè)置的閾值lm的平方替換Lm(步驟S71)。級別m加1(步驟S72),并重復步驟S71,直到在步驟S73確定級別m達到四叉樹的級別數(shù)。
在第二階段中,執(zhí)行觀察點固定時的處理。該處理對應(yīng)于圖24中步驟S51中的內(nèi)部處理。在該處理中,設(shè)置攝像機的位置(步驟S74),固定觀察點(攝像機點P)和視線矢量V。這樣,由于固定了V0、V2、P0、和P2,所以W被計算出來(步驟S75)。
在第三階段中,對每個節(jié)點進行距離估算。該處理對應(yīng)于圖24中的步驟S56中的內(nèi)部處理。在該處理中,確定繪制區(qū)域的節(jié)點(步驟S76)。從而,確定了當前地表面100的中心點C。然后,計算D(步驟S77),執(zhí)行估算公式(3)(步驟S78)。確定結(jié)果是真還是假(步驟S79)。如果確定該結(jié)果是真,則繪制該節(jié)點的地圖(步驟S80)。在步驟S81中重復從步驟S76起的處理步驟,直到確定繪制已經(jīng)完成。如果在步驟S79中確定該結(jié)果是假,則處理進入步驟S81。
因此,與利用每次使用估算公式都必須執(zhí)行兩次乘法和一次減法的公式(1)的情況相比較,利用估算公式(3)進行距離估算顯著地減少了CPU61d的負擔,從而實現(xiàn)了高速計算。
利用上述布景圖數(shù)據(jù)中的四叉樹結(jié)構(gòu)的LOD方法引起下述問題。
一般地,如圖41所示,在采用這樣四叉樹結(jié)構(gòu)的LOD方法中,要估算的區(qū)域被機械地劃分成四個區(qū)域,并根據(jù)物體是否在分區(qū)域中來構(gòu)造樹中的節(jié)點的等級。然而,如果這種方法用于三維地圖,那么,例如,由于機械數(shù)據(jù)劃分的LOD處理,可能不在屏幕上顯示可以從遠處看到的作為地標的物體,如東京塔或其他高大建筑物,即使這樣的物體位于可看見的位置。這是因為這樣物體不占用大面積的地表面。
下面將描述布景圖數(shù)據(jù)的四叉樹結(jié)構(gòu)中添加高度作為要素的情形。
圖28說明了添加了高度作為要素的四叉樹結(jié)構(gòu)。
盡管通常在四叉樹結(jié)構(gòu)中的一個分區(qū)域內(nèi)的物體110被分到較低節(jié)點,但是如果該物體110的高度超過了閾值,則將該物體110分到較高節(jié)點。
從而,避免了原來不顯示能在那個位置上看見的高大建筑物的情形。
下面描述一種在三維地圖數(shù)據(jù)結(jié)構(gòu)中用戶指定的點上顯示POI信息的方法。
圖29說明了用于指明用戶指定的建筑物的處理。
例如,當用戶用手指或記錄筆在圖4所示的顯示設(shè)備62的屏幕上指定一點時,對應(yīng)于用戶在屏幕120上指定點的點121的坐標表示為(x,y)。這里,根據(jù)圖6所示布景圖數(shù)據(jù)中描述的與坐標(x,y)交迭的表示建筑物等物體的邊界框的投影(projection),投影最接近屏幕的物體作為指定建筑物被指明。在圖29所示的例子中,在物體126、127和128中,物體126和128的邊界框126a和128a在屏幕120上與坐標點(x,y)交迭。因為邊界框126a的位置更接近屏幕,在此例子中,物體126被指定。
現(xiàn)在參考圖30所示流程圖描述指明用戶指定的建筑物的處理。
CPU61d根據(jù)用戶使用外部輸入設(shè)備64等指定的點的信息,指明屏幕上的點的坐標(x,y),如圖29所示(步驟S90)。然后,基于指明的坐標(x,y)搜索布景圖數(shù)據(jù)。首先,把當前級別設(shè)置為1(步驟S91),獲取設(shè)置在當前級別的物體的邊界框(步驟S92)。將所獲取的邊界框投影在屏幕上的三維坐標上(步驟S93)。確定邊界框是否與用戶指定的點(x,y)交迭(步驟S94)。如果邊界框與點(x,y)交迭,則將該物體的ID和坐標加入列表,并臨時存儲在RAM61b中(步驟S95)。然后,處理進入步驟S96。如果在步驟S94中確定邊界框沒有與點(x,y)交迭,則處理進入步驟S96。
在步驟S96中,確定是否已經(jīng)處理了所有物體。如果不是所有物體都已經(jīng)被處理,則獲取在當前級別的下一個物體的邊界框(步驟S97),重復從步驟S93起的處理步驟。如果在步驟S96中確定已經(jīng)處理了所有物體,處理進入步驟S98。
在步驟S98中,確定是否已搜索了所有級別。如果不是所有級別都已被搜索,則當前級別加1(步驟S99),并重復從步驟S92起的處理步驟。如果在步驟S98中確定已經(jīng)搜索了所有級別,則確定從在步驟S95中加入列表的物體的邊界框的坐標中,選擇三維空間中最接近的物體,并提取該物體(步驟S100)。
另外,因為所選物體的ID對應(yīng)于三維地圖中的標志,所以可以執(zhí)行特殊效果繪制,例如僅放大屏幕上顯示的所選物體或改變所選物體的顏色。
對于上述三維地圖的這種交互,當顯示有許多建筑物的市區(qū)內(nèi)的廣域地圖時,指定特定建筑物可能是困難的。例如,即使用戶想在屏幕上指定高大建筑物,當機械地應(yīng)用圖30所示的處理時,因為想指定的建筑物周圍有很多小的和中等大小的建筑物,所以可能很難確定用戶要指定的建筑物。在圖30的步驟S98中,如果把要搜索的布景圖數(shù)據(jù)的級別限定設(shè)置成比物體實際所在的級別低的詳細度級別,則僅剩下大于預(yù)定閾值和高于預(yù)定閾值的建筑物。這樣,用戶可以容易地進行搜索。另外,因為要搜索的物體的數(shù)量減少,搜索所花費的時間也減少了。例如,如下所述執(zhí)行該處理。
圖31和32說明了當限定要搜索的級別時對物體的搜索。
如果用戶想在圖31所示屏幕上指定公園130,因為公園130被多個建筑物131、132、和133包圍,很難指定公園130。在這種情況下,因為公園130與建筑物131、132、和133的大小是明顯不同的,所以在布景圖數(shù)據(jù)中公園130屬于與建筑物131、132、和133不同的級別。這樣,通過把布景圖數(shù)據(jù)劃分成要搜索的級別和不被搜索的級別,如圖32所示,用戶可以很容易地指定公園130。也就是說,如果將詳細度級別高于預(yù)定級別的布景圖數(shù)據(jù)設(shè)置成不被搜索,則可以很容易地指定期望的點。
權(quán)利要求
1.一種具有顯示三維地圖的功能均地圖顯示系統(tǒng),包括地圖數(shù)據(jù)處理部分,用于把三維地圖數(shù)據(jù)分成用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù)和用來繪制該三維地圖中包括的物體的繪制數(shù)據(jù),并處理該布景圖數(shù)據(jù)和該繪制數(shù)據(jù);以及地圖數(shù)據(jù)顯示部分,用于參考布景圖數(shù)據(jù)指定顯示區(qū)域,并根據(jù)指定顯示區(qū)域讀取和顯示繪制數(shù)據(jù)。
2.一種用于處理三維地圖數(shù)據(jù)的地圖數(shù)據(jù)處理裝置,包括存儲單元,用于存儲三維地圖數(shù)據(jù);以及地圖數(shù)據(jù)處理單元,用于把三維地圖數(shù)據(jù)分成用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù)和用來繪制該三維地圖中包括的物體的繪制數(shù)據(jù),并處理該布景圖數(shù)據(jù)和該繪制數(shù)據(jù)。
3.如權(quán)利要求2所述的地圖數(shù)據(jù)處理裝置,其中樹結(jié)構(gòu)包括取決于三維地圖的詳細度級別的多個等級級別的節(jié)點。
4.如權(quán)利要求3所述的地圖數(shù)據(jù)處理裝置,其中,在樹結(jié)構(gòu)中,在每個等級級別,每個節(jié)點被劃分成四個節(jié)點。
5.如權(quán)利要求3所述的地圖數(shù)據(jù)處理裝置,其中地圖數(shù)據(jù)處理單元處理布景圖數(shù)據(jù),使得對于較低詳細度級別的節(jié)點顯示高于預(yù)定閾值的物體。
6.如權(quán)利要求2所述的地圖數(shù)據(jù)處理裝置,其中樹結(jié)構(gòu)以XML格式寫出。
7.如權(quán)利要求2所述的地圖數(shù)據(jù)處理裝置,其中繪制數(shù)據(jù)以順序執(zhí)行數(shù)據(jù)格式寫出。
8.如權(quán)利要求2所述的地圖數(shù)據(jù)處理裝置,其中地圖數(shù)據(jù)處理單元把用于使布景圖數(shù)據(jù)和繪制數(shù)據(jù)相關(guān)聯(lián)的標志信息添加到布景圖數(shù)據(jù)和繪制數(shù)據(jù)。
9.一種具有顯示三維地圖的功能的地圖顯示裝置,包括布景圖數(shù)據(jù)存儲單元,用于存儲用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù);繪制數(shù)據(jù)存儲單元,用于存儲用來繪制三維地圖中包括的物體的繪制數(shù)據(jù);顯示區(qū)域指定單元,用于參考布景圖數(shù)據(jù)指定顯示區(qū)域;數(shù)據(jù)讀取單元,用于根據(jù)指定的顯示區(qū)域讀取繪制數(shù)據(jù);以及顯示處理單元,用于基于所讀取的繪制數(shù)據(jù)執(zhí)行顯示處理。
10.如權(quán)利要求9所述的地圖顯示裝置,還包括當前位置指定單元,用于指定當前位置;和攝像機位置設(shè)置單元,用于在三維地圖中設(shè)置觀察點和視線,其中顯示區(qū)域指定單元基于指定的當前位置、觀察點、和視線通過參考布景圖數(shù)據(jù)指定顯示區(qū)域。
11.如權(quán)利要求10所述的地圖顯示裝置,其中該樹結(jié)構(gòu)包括取決于三維地圖的詳細度級別的多個等級級別的節(jié)點;并且該顯示區(qū)域指定單元根據(jù)從觀察點到每個節(jié)點表示的三維地圖的地表面的距離,基于觀察點和視線確定詳細度級別,并指定顯示區(qū)域。
12.如權(quán)利要求9所述的地圖顯示裝置,還包括關(guān)注點信息存儲單元,用于存儲為物體提供的關(guān)注點信息,其中數(shù)據(jù)讀取單元在布景圖數(shù)據(jù)中搜索用戶在顯示處理單元顯示的三維地圖上指定的物體,并讀取搜索物體的關(guān)注點信息;以及顯示處理單元在屏幕上顯示關(guān)注點信息。
13.如權(quán)利要求12所述的地圖顯示裝置,其中數(shù)據(jù)讀取單元限定要搜索的布景圖數(shù)據(jù)的等級級別。
14.一種用于顯示三維地圖的地圖顯示方法,包括以下步驟在三維地圖中設(shè)置觀察點和視線;搜索采用具有取決于詳細度級別的多個等級級別的節(jié)點的樹結(jié)構(gòu)來表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù),并根據(jù)從觀察點到每個節(jié)點表示的三維地圖的地表面的距離,基于觀察點和視線來確定是否顯示每個節(jié)點表示的三維地圖;當顯示每個節(jié)點表示的三維地圖時,讀取用于繪制在每個節(jié)點的三維地圖中包括的物體的繪制數(shù)據(jù);以及基于所讀取的繪制數(shù)據(jù)執(zhí)行顯示處理。
全文摘要
地圖數(shù)據(jù)處理部分把原始三維地圖數(shù)據(jù)分成用樹結(jié)構(gòu)表示三維地圖的數(shù)據(jù)結(jié)構(gòu)的布景圖數(shù)據(jù)和用于繪制在該三維地圖中包括的物體的繪制數(shù)據(jù),并處理該布景圖數(shù)據(jù)和該繪制數(shù)據(jù)。地圖數(shù)據(jù)顯示部分通過參考布景圖數(shù)據(jù)指定顯示區(qū)域,并根據(jù)指定的顯示區(qū)域讀取和顯示繪制數(shù)據(jù)。
文檔編號G06T17/05GK1619596SQ20041010384
公開日2005年5月25日 申請日期2004年8月2日 優(yōu)先權(quán)日2003年8月1日
發(fā)明者龜田健司, 香田夏雄, 伊藤淳平, 長田尚憲 申請人:索尼株式會社