專利名稱:一種電子地圖路名生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電子地圖技術(shù),尤其是涉及一種電子地圖路名生成方法。
背景技術(shù):
理想狀態(tài)下,導(dǎo)航儀中的電子地圖要求具有地圖和路名能快速生成、能根據(jù)不同狀況動態(tài)生成地圖、生成的路名不重疊且方便觀看的性能。然后對現(xiàn)有的一些電子地圖技術(shù)雖然能夠?qū)崿F(xiàn)上面的一個(gè)或者兩個(gè)效果,但是卻不能綜合有效實(shí)現(xiàn)上述三個(gè)效果。現(xiàn)有的電子地圖生成方法存在下面幾個(gè)問題。數(shù)據(jù)生成時(shí)需要預(yù)先定義路名顯示所用的字體信息,如果顯示實(shí)時(shí)用的字體類型、字體大小及字間距與所生成數(shù)據(jù)中的定義不同的話,會出現(xiàn)字符重疊,或者字間距過大等問題,嚴(yán)重影響最終顯示效果。當(dāng)?shù)貓D角度發(fā)生改變時(shí),預(yù)生成的數(shù)據(jù)很難保證“從左到右,從上到下”的路名顯示原則,需要根據(jù)實(shí)時(shí)地地圖角度對,路名字符的順序,及字符的方向進(jìn)行動態(tài)調(diào)整。尤其是在使用非等寬字體,或英文/拼音路名的情況下,由于路名各字符的寬度不一致,調(diào)整字符順序無法保證字間距的一致,影響顯示效果。數(shù)據(jù)生成時(shí)需針對不同比例尺生成不同的路名數(shù)據(jù),生成的數(shù)據(jù)量非常大;如果同時(shí)實(shí)現(xiàn)路名各字符方向與所在道路方向平行的效果時(shí),需要在數(shù)據(jù)生成時(shí)生成額外的角度數(shù)據(jù)。數(shù)據(jù)量過大會提高對使用設(shè)備的要求。如果在不同比例尺間切換需要平滑的過渡效果時(shí),由于過渡效果的顯示使用的可能是非預(yù)定義的比例尺,此時(shí)路名顯示只能使用某個(gè)預(yù)定義比例尺的數(shù)據(jù)。而由于縮放系數(shù)的不同會,非預(yù)定義比例尺使用預(yù)定義比例尺數(shù)據(jù)會造成明明間距過大或過小的問題, 影響最終顯示效果。現(xiàn)有技術(shù)中,對前文所述的字符重復(fù)的解決方法有外接矩形碰撞檢測過濾方法, 這個(gè)方法雖然能夠檢測出重疊的字符,并過濾掉,但是一旦電子地圖所涉及的道路數(shù)量較大的時(shí)候,所需處理的時(shí)間很長,嚴(yán)重影響了電子地圖的實(shí)時(shí)性,嚴(yán)重影響導(dǎo)航系統(tǒng)的綜合性能。市場急盼一種具備快速、動態(tài)生成地圖和路名且生成路名方便觀看的電子地圖技術(shù)。
發(fā)明內(nèi)容
本發(fā)明針對上述電子地圖生成的缺點(diǎn),提出一種動態(tài)、快速、不重疊的電子地圖路名生成方法。本發(fā)明采取的設(shè)計(jì)方案為
一種電子地圖路名生成方法,包括以下步驟
獲取顯示范圍內(nèi)的矢量數(shù)據(jù);
進(jìn)行實(shí)時(shí)變換數(shù)據(jù),得到屏幕坐標(biāo)數(shù)據(jù);使用所述的屏幕坐標(biāo)數(shù)據(jù)繪制道路;
使用所述的屏幕坐標(biāo)數(shù)據(jù)進(jìn)行一條道路路名沿道路方向生成,并保存所有適合顯示的路名;
使用前一步驟遍歷顯示范圍內(nèi)的所有道路,直到完成顯示范圍內(nèi)所有道路路名的生
成;
繪制路名。一種優(yōu)選方案,所述的進(jìn)行一條道路路名沿道路方向生成之后還包括進(jìn)行閱讀趨勢過濾,所述的閱讀趨勢過濾可以過濾不適合顯示的路名。一種優(yōu)選方案,所述的閱讀趨勢過濾包括以下步驟
選擇一條道路上的一個(gè)路名,計(jì)算該路名的每個(gè)字符的位置及方向;
進(jìn)行閱讀趨勢過濾,閱讀趨勢過濾規(guī)則是路名的后一個(gè)字符前進(jìn)方向與前一個(gè)字符前進(jìn)方向所成的夾角大于等于45度,則過濾掉該路名;
如果通過閱讀趨勢過濾,則保存適合顯示的路名記錄;
完成該道路所有路名的閱讀趨勢過濾。一種優(yōu)選方案,所述的進(jìn)行一條道路路名沿道路方向生成包括以下步驟
計(jì)算一條道路在屏幕上的長度;
計(jì)算道路路名在屏幕上的長度;
過濾過短道路,如果道路在屏幕顯示長度大于等于路名在屏幕顯示長度,是則進(jìn)入下一步驟,否則,過濾該道路路名,并則跳回上兩步驟;
設(shè)置路名間距,計(jì)算路名重復(fù)頻率;
計(jì)算各路名顯示區(qū)間的起點(diǎn)和終點(diǎn),并選擇合適的點(diǎn)作為路名生成的起點(diǎn);
完成路名的生成。一種優(yōu)選方案,所述的繪制路名可以包括外包矩形碰撞過濾
繪制路名時(shí),根據(jù)路名的每個(gè)字符的矩形框計(jì)算出一個(gè)能包含該路名所有字符的外包大矩形框;
如果外包大矩形框和已繪制的路名字符發(fā)生碰撞,則舍棄這條記錄,如果外包大矩形框沒有和已繪制的路名字符發(fā)生碰撞,則繪制外包大矩形框里邊的路名字符。一種優(yōu)選方案,所述的實(shí)時(shí)變換數(shù)據(jù)包括以下步驟
獲取電子地圖的顯示參數(shù),包括有角度、比例尺、地圖中心的緯度值;
根據(jù)獲得的顯示參數(shù),將所述的矢量數(shù)據(jù)變成屏幕坐標(biāo)數(shù)據(jù)。綜上所述,本發(fā)明具有以下顯著的有益效果
(1)動態(tài),本申請的電子地圖是實(shí)時(shí)生成的,不同于一些電子地圖,他們將處理好的電子地圖是存儲在存儲設(shè)備,使用的時(shí)候從存儲器獲取。本申請的電子地圖動態(tài)生成技術(shù)可以根據(jù)不同的顯示區(qū)域與不同的顯示比例尺選擇最合適的方式向用戶顯示道路和路名,改變了僵硬顯示方式,本發(fā)明可以適應(yīng)更加復(fù)雜的路況;
(2)快速,本發(fā)明道路路名經(jīng)過“過濾過短道路”和“閱讀趨勢過濾”可以減少進(jìn)入路名繪制階段的路名數(shù)量,可以使得路名生成時(shí)間整體上加快。在中國國情下,我們這種技術(shù)優(yōu)勢體現(xiàn)的淋漓盡致,我國山多,道路曲折,在電子地圖上顯示很多道路都是歪歪扭扭的, 通過“過濾過短道路步驟”和“閱讀趨勢過濾”可以過濾很大一部分的道路路名,并且這兩個(gè)步驟計(jì)算量小,而“外接矩形碰撞過濾”這個(gè)步驟計(jì)算量大,所以在“外接矩形碰撞過濾” 之前加上“過濾過短道路”和“閱讀趨勢過濾”,非但不會減慢路名生成速度,反而是生成速度大幅提高,這產(chǎn)生了二加一小于一的效果,并且本申請對“外接矩形碰撞過濾”方法進(jìn)行了優(yōu)化,本申請使用了整條路名字符的外接矩形框進(jìn)行碰撞檢測,減少參與碰撞檢測的字符數(shù)目,提高碰撞檢測的效率;
(3)不重疊,電子地圖路名生成過程中,有可能產(chǎn)生一些路名重疊現(xiàn)象,本發(fā)明通過外接矩形碰撞過濾步驟,能夠有效的過濾掉重疊的路名,使得展現(xiàn)給用戶的界面上路名整體清楚有序,不凌亂,可以向用戶一種良好的視覺感受。電子地圖路名不重疊,可以避免司機(jī)因?yàn)榈缆仿访y以分辨而分神。說明書附圖
附圖I為本發(fā)明所述一種電子地圖路名生成方法的流程圖。
具體實(shí)施例方式為了讓本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖對本發(fā)明作進(jìn)一步闡述。本發(fā)明一種電子地圖路名生成方法,包括以下步驟
第一步獲取顯示范圍內(nèi)的矢量數(shù)據(jù),從存儲裝置中獲取用于生成地圖的矢量數(shù)據(jù),所述的矢量數(shù)據(jù)為記載了地圖上每個(gè)點(diǎn)的經(jīng)緯度信息的數(shù)據(jù);
第二步實(shí)時(shí)變換數(shù)據(jù),具體的,獲取電子地圖的顯示參數(shù),包括角度、比例尺、地圖中心的緯度值等,根據(jù)前一步驟獲得的顯示參數(shù),將矢量數(shù)據(jù)變成屏幕坐標(biāo)數(shù)據(jù),所述的屏幕坐標(biāo)數(shù)據(jù)為記載了地圖每個(gè)點(diǎn)在屏幕上坐標(biāo)位置數(shù)據(jù);
第三步使用屏幕坐標(biāo)數(shù)據(jù)繪制道路;
第四步進(jìn)行一條道路的路名沿道路方向生成,所述的沿道路方向生成為道路路名走向跟道路走向一致,具體的,
選擇一條道路,從第二步所述的屏幕坐標(biāo)數(shù)據(jù)中,逐條分析道路形狀點(diǎn)數(shù)據(jù),計(jì)算道路在屏幕顯不長度(RoadLength),
計(jì)算道路路名在屏幕顯示長度(LabelWidth),路名在屏幕的顯示長度可以根據(jù)實(shí)際情況設(shè)置,
過濾過短道路,如果道路在屏幕顯示長度大于等于路名在屏幕顯示長度,既 RoadLength 會是則進(jìn)入下一步驟,否則,既 RoadLength < LabelWidth 過濾該
道路路名,并則跳回上兩步驟,既是回到單一道路的路名生成步驟的開始,
設(shè)置路名間距LabelSpace,路名間距可以根據(jù)實(shí)際情況設(shè)計(jì),如,在屏幕分辨率為 800x480的設(shè)備上,我們希望達(dá)到同一路名水平方向上重復(fù)次數(shù)不超過3次,垂直方向上不超過2次,可以將LabelSpace定義為300,根據(jù)路名間距LabelSpace計(jì)算路名重復(fù)頻率 RepeatCount, RepeatCount = RoadLength / (Labelffidth + LabelSpcace),
計(jì)算路名起點(diǎn)StartOffset^l^; EndPoint,完成單一道路路名的生成,估算每段可以顯示路名區(qū)間的起始點(diǎn),
第一個(gè)區(qū)間的起點(diǎn)的確定方法如下
StartOffset = (RoadLenght - (Labelffidth + LabelSpcace)* RepeatCount) /2(該區(qū)間并非嚴(yán)格的路名顯示范圍,由于道路形狀的影響,可能會出現(xiàn)路名超出該區(qū)間的情況)判斷各路名區(qū)間起始點(diǎn)的相對位置,通過“從左到右,從上到下”的路名顯示原則,選擇一個(gè)點(diǎn)作為路名的起點(diǎn)StartPoint,另一個(gè)點(diǎn)記作EndPoint,以StartPoint為起點(diǎn),向 EndPoint方向計(jì)算路名中各字符的位置,和所在道路的方向,并根據(jù)所在道路的方向確定各字符的顯示方向;
第五步進(jìn)行閱讀趨勢過濾,所述的閱讀趨勢過濾可以過濾不適合顯示的路名,具體的, 選擇一條道路,即是第四步驟所處理的道路,從該道路中選擇一個(gè)路名,計(jì)算該路名的每個(gè)字符的位置及方向,
進(jìn)行閱讀趨勢過濾,閱讀趨勢是指閱讀一段文字的方向。閱讀趨向改變即指所閱讀的文字并非按照直線排布,從一個(gè)文字閱讀到另外一個(gè)文字的方向發(fā)生了改變,閱讀趨勢過濾規(guī)則是路名的后一個(gè)字符前進(jìn)方向與前一個(gè)字符前進(jìn)方向所成的夾角大于等于四十五度,則過濾掉該路名,
如果通過閱讀趨勢過濾,則保存適合顯示的路名記錄,
判斷該道路的路名是否都經(jīng)過閱讀趨勢過濾,是則進(jìn)入下一步驟,否則回到閱讀趨勢判斷過濾的開始步驟;
第六步使用前兩步驟遍歷顯示范圍內(nèi)的所有道路,直到完成顯示范圍內(nèi)所有道路路名沿道路方向的生成;
第七步繪制路名,具體的,
繪制路名前,根據(jù)所要繪制的路名的每個(gè)字符的矩形框,計(jì)算能包含整個(gè)路名所有字符的外包矩形框,
如果新生成的外包矩形框和已繪制的路名字符發(fā)生碰撞,則舍棄這條記錄,如果新的外包矩形框沒有和已繪制的路名字符發(fā)生碰撞,則繪制新的外包矩形框里邊的路名字符, 并且路名按照等級從高到低的順序進(jìn)行繪制。本申請中,單個(gè)路名中字符之間并沒有經(jīng)過是否重疊的碰撞檢測,因?yàn)閱蝹€(gè)路名中字符之間重疊的情況基本通不過閱讀趨勢過濾。繪制路名時(shí),用整條路名記錄的外包矩形框進(jìn)行外包矩形碰撞過濾,可以減少參與外包矩形碰撞過濾的記錄條數(shù),提高碰撞檢測的效率。由于路名不是顯示在同一水平或垂直直線上,整條路名記錄的外包矩形框覆蓋面積太大,會碰撞掉原本可以顯示的路名。雖然該方法會丟失路名,但是根據(jù)路名等級從高到低的順序來進(jìn)行路名繪制,可以優(yōu)先將高等級的路名顯示出來。需要說明的是,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種電子地圖路名生成方法,其特征在于,包括以下步驟獲取顯示范圍內(nèi)的矢量數(shù)據(jù);進(jìn)行實(shí)時(shí)變換數(shù)據(jù),得到屏幕坐標(biāo)數(shù)據(jù);使用所述的屏幕坐標(biāo)數(shù)據(jù)繪制道路;使用所述的屏幕坐標(biāo)數(shù)據(jù)進(jìn)行一條道路路名沿道路方向生成,并保存所有適合顯示的路名;使用前一步驟遍歷顯示范圍內(nèi)的所有道路,直到完成顯示范圍內(nèi)所有道路路名的生成;繪制路名。
2.根據(jù)權(quán)利要求I所述的一種電子地圖路名生成方法,其特征在于所述的進(jìn)行一條道路路名沿道路方向生成之后還包括進(jìn)行閱讀趨勢過濾,所述的閱讀趨勢過濾是過濾不適合顯示的路名。
3.根據(jù)權(quán)利要求2所述的一種電子地圖路名生成方法,其特征在于,所述的閱讀趨勢過濾包括以下步驟選擇一條道路上的一個(gè)路名,計(jì)算該路名的每個(gè)字符的位置及方向;進(jìn)行閱讀趨勢過濾,閱讀趨勢過濾規(guī)則是路名的后一個(gè)字符前進(jìn)方向與前一個(gè)字符前進(jìn)方向所成的夾角大于等于45度,則過濾掉該路名;如果通過閱讀趨勢過濾,則保存適合顯示的路名記錄;完成該道路所有路名的閱讀趨勢過濾。
4.根據(jù)權(quán)利要求3所述的一種電子地圖路名生成方法,其特征在于,所述的進(jìn)行一條道路路名沿道路方向生成包括以下步驟計(jì)算一條道路在屏幕上的長度;計(jì)算道路路名在屏幕上的長度;過濾過短道路,如果道路在屏幕顯示長度大于等于路名在屏幕顯示長度,是則進(jìn)入下一步驟,否則,過濾該道路路名,并則跳回上兩步驟;設(shè)置路名間距,計(jì)算路名重復(fù)頻率;計(jì)算各路名顯示區(qū)間的起點(diǎn)和終點(diǎn),并選擇合適的點(diǎn)作為路名生成的起點(diǎn);完成路名的生成。
5.根據(jù)權(quán)利要求4所述的一種電子地圖路名生成方法,其特征在于,所述的繪制路名可以包括外包矩形碰撞過濾繪制路名時(shí),根據(jù)路名的每個(gè)字符的矩形框計(jì)算出一個(gè)能包含該路名所有字符的外包大矩形框;如果外包大矩形框和已繪制的路名字符發(fā)生碰撞,則舍棄這條記錄,如果外包大矩形框沒有和已繪制的路名字符發(fā)生碰撞,則繪制外包大矩形框里邊的路名字符。
6.根據(jù)權(quán)利要求5所述的一種電子地圖路名生成方法,其特征在于,所述的實(shí)時(shí)變換數(shù)據(jù)包括以下步驟獲取電子地圖的顯示參數(shù),包括有角度、比例尺、地圖中心的緯度值;根據(jù)獲得的顯示參數(shù),將所述的矢量數(shù)據(jù)變成屏幕坐標(biāo)數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種電子地圖路名生成方法,包括以下步驟獲取顯示范圍內(nèi)的矢量數(shù)據(jù);實(shí)時(shí)變換數(shù)據(jù);使用實(shí)時(shí)變換后的數(shù)據(jù)繪制道路;使用實(shí)時(shí)變換后的數(shù)據(jù),逐條生成沿道路方向的路名;進(jìn)行閱讀趨勢判斷,過濾不適合顯示的路名;獲取所有適合顯示的路名,繪制路名,路名生成結(jié)束。本發(fā)明公開的一種電子地圖路名生成方法,具有動態(tài)、快速、生成路名不重疊的優(yōu)點(diǎn)。
文檔編號G01C21/32GK102538803SQ20111041225
公開日2012年7月4日 申請日期2011年12月13日 優(yōu)先權(quán)日2011年12月13日
發(fā)明者譚廣華 申請人:惠州市德賽西威汽車電子有限公司