欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

繪制地圖中路線的方法和裝置制造方法

文檔序號(hào):6627471閱讀:280來(lái)源:國(guó)知局
繪制地圖中路線的方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種繪制地圖中路線的方法,包括:將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合;以所述數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制,且在繪制每個(gè)所述數(shù)據(jù)點(diǎn)單元時(shí),將所述數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制。采用本發(fā)明提供的繪制地圖中路線的方法,相鄰的兩個(gè)三點(diǎn)式折線段可以無(wú)縫連接,而順序鄰接的圖形區(qū)域可以無(wú)縫連接在一起組成三點(diǎn)式折線段,這樣將所有數(shù)據(jù)點(diǎn)單元繪制完成后,就可以得到一條沒(méi)有連接空隙以及重復(fù)繪制的折線段路線,使得圖像品質(zhì)得到提升。本發(fā)明還提供了一種繪制地圖中路線的裝置。
【專利說(shuō)明】繪制地圖中路線的方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像處理【技術(shù)領(lǐng)域】,特別是涉及一種繪制地圖中路線的方法和裝置。

【背景技術(shù)】
[0002]目前在電子地圖中繪制折線段路線時(shí),通常會(huì)采用兩點(diǎn)間繪制一條具有寬度的直線段的方法,然而這樣繪制的一條折線段會(huì)導(dǎo)致在折線段中直線段的連接處會(huì)存在空隙以及重復(fù)繪制的問(wèn)題。如圖1所示的一條折線段路線,包括直線段110、120和130,直線段110和120之間存在重復(fù)繪制區(qū)域IlOa以及空隙110b,類似地,直線段120和130之間也存在重復(fù)繪制區(qū)域120a以及空隙120b。
[0003]于是,傳統(tǒng)的地圖中繪制折線段路線的方法導(dǎo)致繪制的折線段中直線段的連接處存在空隙或者重復(fù)繪制區(qū)域,其中空隙會(huì)使得直線段之間連接不連貫,影響路線繪制品質(zhì),而重復(fù)繪制區(qū)域則會(huì)使得路線繪制效率低,并會(huì)妨礙上色。因此傳統(tǒng)的地圖中繪制折線段路線的方法需要改進(jìn)。


【發(fā)明內(nèi)容】

[0004]基于此,有必要針對(duì)傳統(tǒng)的地圖中繪制折線段路線的方法使得繪制的折線段中直線段的連接處存在空隙或者重復(fù)繪制的問(wèn)題,提供一種繪制地圖中路線的方法和裝置。
[0005]一種繪制地圖中路線的方法,所述方法包括:
[0006]將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合;
[0007]以所述數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制,且
[0008]在繪制每個(gè)所述數(shù)據(jù)點(diǎn)單元時(shí),將所述數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制。
[0009]一種繪制地圖中路線的裝置,所述裝置包括:
[0010]拆分模塊,用于將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合;
[0011]繪制執(zhí)行模塊,用于以所述數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制,且在繪制每個(gè)所述數(shù)據(jù)點(diǎn)單元時(shí),將所述數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制。
[0012]上述繪制地圖中路線的方法和裝置,將數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合,這樣就能夠以數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制。其中相鄰的兩個(gè)三點(diǎn)式折線段之間的連接成為直線連接,可以無(wú)縫連接。而在繪制每個(gè)數(shù)據(jù)點(diǎn)單元時(shí),將其所表示的三點(diǎn)式折線段劃分為順序鄰接的圖形區(qū)域來(lái)分別進(jìn)行繪制,這樣順序鄰接的圖形區(qū)域就可以無(wú)縫連接在一起組成三點(diǎn)式折線段。這樣將所有數(shù)據(jù)點(diǎn)單元繪制完成后,就可以得到一條沒(méi)有連接空隙以及重復(fù)繪制的折線段路線,使得圖像品質(zhì)得到提升。

【專利附圖】

【附圖說(shuō)明】
[0013]圖1為一個(gè)實(shí)施例中傳統(tǒng)的地圖中繪制折線段路線的方法所繪制的折線段示意圖;
[0014]圖2為一個(gè)實(shí)施例中用于實(shí)現(xiàn)繪制地圖中路線的方法的終端的結(jié)構(gòu)示意圖;
[0015]圖3為一個(gè)實(shí)施例中繪制地圖中路線的方法的流程示意圖;
[0016]圖4為一個(gè)實(shí)施例中在用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列所表示的直線段序列中,將除首尾直線段外的剩余的每個(gè)直線段分別在預(yù)設(shè)位置處拆分的示意圖;
[0017]圖5為一個(gè)實(shí)施例中利用一個(gè)數(shù)據(jù)點(diǎn)單元所表示的預(yù)計(jì)用兩條矩形直線段連接獲得的三點(diǎn)式折線段來(lái)劃分圖形區(qū)域的示意圖;
[0018]圖6為一個(gè)實(shí)施例中第二圖形區(qū)域的放大示意圖;
[0019]圖7為一個(gè)實(shí)施例中不采用抗鋸齒、采用系統(tǒng)抗鋸齒方法以及采用對(duì)用以繪制路線的圖片紋理進(jìn)行透明漸進(jìn)處理來(lái)實(shí)現(xiàn)抗鋸齒的效果對(duì)比圖;
[0020]圖8為一個(gè)實(shí)施例中對(duì)圖片紋理的邊緣進(jìn)行透明漸進(jìn)處理的效果示意圖;
[0021]圖9為一個(gè)實(shí)施例中地圖在不同顯示比例尺下顯示的同一條路線的效果對(duì)比圖;
[0022]圖10為一個(gè)實(shí)施例中采用預(yù)設(shè)的普通寬度的線條類型繪制的路線的示意圖;
[0023]圖11為一個(gè)實(shí)施例中采用預(yù)設(shè)的粗線條類型所繪制的路線的示意圖;
[0024]圖12為一個(gè)實(shí)施例中采用點(diǎn)虛線條類型所繪制的路線的示意圖;
[0025]圖13為一個(gè)實(shí)施例中采用包含間隔設(shè)置的箭頭圖標(biāo)的線條類型所繪制的路線的示意圖;
[0026]圖14為一個(gè)實(shí)施例中繪制地圖中路線的裝置的結(jié)構(gòu)框圖;
[0027]圖15為另一個(gè)實(shí)施例中繪制地圖中路線的裝置的結(jié)構(gòu)框圖;
[0028]圖16為再一個(gè)實(shí)施例中繪制地圖中路線的裝置的結(jié)構(gòu)框圖。

【具體實(shí)施方式】
[0029]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0030]在一個(gè)實(shí)施例中,提供了一種終端,該終端的結(jié)構(gòu)示意圖如圖2所示。該終端包括通過(guò)系統(tǒng)總線連接的處理器、圖形處理單元、存儲(chǔ)介質(zhì)、內(nèi)存、顯示屏幕和輸入設(shè)備。其中,終端的存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng),還存儲(chǔ)有一種繪制地圖中路線的裝置和電子地圖,或者存儲(chǔ)有包含繪制地圖中路線的裝置的電子地圖,該繪制地圖中路線的裝置用于實(shí)現(xiàn)一種繪制地圖中路線的方法。該終端的處理器用于提供計(jì)算和控制能力,支撐整個(gè)終端的運(yùn)行。圖形處理單元為可視元素的繪制提供計(jì)算、渲染等圖形處理能力,當(dāng)然圖形處理單元和處理器可以封裝成一體。該終端的內(nèi)存為繪制地圖中路線的裝置的運(yùn)行提供環(huán)境。該終端的顯示屏幕用于顯示可視化元素,包括顯示實(shí)施繪制地圖中路線的方法所繪制的線條,進(jìn)一步地顯示電子地圖中的各種元素,比如地圖標(biāo)記、各種類型的路線以及實(shí)景快照等。該終端的輸入設(shè)備用于接收輸入的控制指令,用以對(duì)電子地圖的顯示區(qū)域、顯示比例尺等進(jìn)行控制,輸入設(shè)備可以是鼠標(biāo)、軌跡球、按鍵以及觸摸屏等。該終端可以是移動(dòng)終端,比如手機(jī)、平板電腦等,也可以是臺(tái)式計(jì)算機(jī)。
[0031]如圖3所示,在一個(gè)實(shí)施例中,提供了一種繪制地圖中路線的方法,本實(shí)施例以該方法應(yīng)用于如圖2所示的終端來(lái)舉例說(shuō)明。地圖優(yōu)選是利用計(jì)算機(jī)技術(shù),以數(shù)字方式存儲(chǔ)和查閱的電子地圖。用戶操作終端以請(qǐng)求給出路線時(shí),地圖通過(guò)運(yùn)算得到用于表示路線的數(shù)據(jù)點(diǎn)序列,此時(shí)便可以應(yīng)用以下任意實(shí)施例的繪制地圖中路線的方法而以數(shù)據(jù)點(diǎn)序列為依據(jù)來(lái)繪制折線段路線。該方法具體包括如下步驟:
[0032]步驟302,將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合。
[0033]折線段路線是指需要繪制得到的折線段形式的路線,優(yōu)選為寬度至少為三個(gè)像素點(diǎn)的折線段。數(shù)據(jù)點(diǎn)序列是用于繪制該折線段路線所要依據(jù)的數(shù)據(jù)層數(shù)據(jù)。數(shù)據(jù)點(diǎn)序列中任意一個(gè)數(shù)據(jù)點(diǎn)可以用其所在坐標(biāo)表示,也可以用其相對(duì)于預(yù)設(shè)固定點(diǎn)的相對(duì)位置來(lái)表示。數(shù)據(jù)點(diǎn)序列則是按順序排列而成的數(shù)據(jù)點(diǎn)的集合,將該數(shù)據(jù)點(diǎn)序列中的數(shù)據(jù)點(diǎn)按順序連接起來(lái)就能夠得到折線段路線。優(yōu)選地,數(shù)據(jù)點(diǎn)序列中任意連續(xù)的三個(gè)數(shù)據(jù)點(diǎn)所表示的點(diǎn)不在一條直線上,事先可以將數(shù)據(jù)點(diǎn)序列中可以連成一條直線的連續(xù)的三個(gè)以上的數(shù)據(jù)點(diǎn)合并為兩個(gè)數(shù)據(jù)點(diǎn)。
[0034]三點(diǎn)式折線段是指三個(gè)不在一條直線上的數(shù)據(jù)點(diǎn)順序連接所構(gòu)成的折線段形的繪制單元,表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元?jiǎng)t是用于繪制該三點(diǎn)式折線段的數(shù)據(jù)層數(shù)據(jù)。這里在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理并不需要實(shí)際將相鄰數(shù)據(jù)點(diǎn)相連,而是通過(guò)計(jì)算在相鄰兩個(gè)數(shù)據(jù)點(diǎn)之間找到一個(gè)拆分的數(shù)據(jù)點(diǎn),且該數(shù)據(jù)點(diǎn)與其它兩個(gè)相鄰的數(shù)據(jù)點(diǎn)位于一條直線上。拆分出的數(shù)據(jù)點(diǎn)可以根據(jù)其與其它兩個(gè)相鄰的數(shù)據(jù)點(diǎn)的位置直接計(jì)算出。將數(shù)據(jù)點(diǎn)序列進(jìn)行拆分處理后,獲得數(shù)據(jù)點(diǎn)單元的集合,該集合中的數(shù)據(jù)點(diǎn)單元可以按順序排列,也可以不按順序排列。
[0035]在一個(gè)實(shí)施例中,步驟302包括:在用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列所表示的直線段序列中,將除首尾直線段外的剩余的每個(gè)直線段分別在中點(diǎn)位置處拆分,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合。
[0036]具體地,如圖4所示,假設(shè)數(shù)據(jù)點(diǎn)序列為D1|D2|D3|D4|D5|D6,這里用符號(hào)“I”區(qū)分不同的數(shù)據(jù)點(diǎn),其中數(shù)據(jù)點(diǎn)總個(gè)數(shù)為M = 6個(gè),那么該數(shù)據(jù)點(diǎn)序列所表示的直線段序列為L(zhǎng)12 I L23 I L34 | L45 | L56,這里用符號(hào)“ | ”來(lái)區(qū)分不同的直線段,直線段總個(gè)數(shù)為M-1 = 5個(gè)。其中首尾直線段分別為L(zhǎng)12和L56,除此之外,將剩余的每個(gè)直線段L23、L34、L45共M-3 =3個(gè)分別在預(yù)設(shè)位置處拆分出新的數(shù)據(jù)點(diǎn)分別為D23、D34和D45。然后將每首尾相接的連續(xù)的三個(gè)數(shù)據(jù)點(diǎn)進(jìn)行組合,就獲得了表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合為{D1 |D2|D23、D23|D3|D34、D34|D4|D45、D45 | D5 | D6},該集合中數(shù)據(jù)點(diǎn)單元總個(gè)數(shù)為M-2 = 4個(gè),其中數(shù)據(jù)點(diǎn)單元Dl ID2 ID23與D23 | D3 | D34通過(guò)數(shù)據(jù)點(diǎn)D23首尾相接,數(shù)據(jù)點(diǎn)單元D23 | D3 | D34和D34 ID4 ID45通過(guò)數(shù)據(jù)點(diǎn)D34首尾相接,數(shù)據(jù)點(diǎn)單元D34 | D4 | D45和D45 | D5 | D6通過(guò)數(shù)據(jù)點(diǎn)D45首尾相接。
[0037]其中預(yù)設(shè)位置的選取可以按需要選取,比如為剩余的每個(gè)折線段的三分之一處、五分之二處等,優(yōu)選預(yù)設(shè)位置為剩余的每個(gè)折線段的中點(diǎn)。在中點(diǎn)處拆分可以使得拆分獲得的兩個(gè)數(shù)據(jù)點(diǎn)單元能夠具有足夠長(zhǎng)度且不重疊的直線段,便于后續(xù)以數(shù)據(jù)點(diǎn)單元為單位所進(jìn)行的繪制。本實(shí)施例中除首尾直線段外的剩余的每個(gè)直線段進(jìn)行拆分處理,當(dāng)然也可以將首尾直線段進(jìn)行拆分處理,這樣除了獲得三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合,還會(huì)獲得表示新的兩個(gè)首尾直線段的數(shù)據(jù)點(diǎn)組合,其與該集合中相應(yīng)的數(shù)據(jù)點(diǎn)單元同樣是直線連接,可以無(wú)縫連接,僅在繪制時(shí)多出對(duì)這兩個(gè)數(shù)據(jù)點(diǎn)組合的繪制步驟。
[0038]步驟304,以數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制,且在繪制每個(gè)數(shù)據(jù)點(diǎn)單元時(shí),將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制。
[0039]具體地,分別根據(jù)數(shù)據(jù)點(diǎn)單元的集合中的每個(gè)數(shù)據(jù)點(diǎn)單元進(jìn)行繪制,這樣每個(gè)數(shù)據(jù)點(diǎn)單元分別作為一個(gè)繪制單元進(jìn)行繪制,因在步驟302中在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行了拆分處理,因此繪制單元之間的連接處為直線連接,這樣相鄰兩個(gè)繪制單元各自的一條矩形直線段可以完美的無(wú)縫連接起來(lái),避免出現(xiàn)連接空隙和重復(fù)繪制。
[0040]在繪制每個(gè)數(shù)據(jù)點(diǎn)單元時(shí),數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段被劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制,這樣繪制時(shí),每個(gè)圖形區(qū)域可以分別被獨(dú)立繪制,而由于圖形區(qū)域的順序鄰接,各個(gè)圖形區(qū)域就可以無(wú)縫組合起來(lái)構(gòu)成完整的三點(diǎn)式折線段,避免出現(xiàn)連接空隙和重復(fù)繪制。
[0041]在一個(gè)實(shí)施例中,將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制的步驟,具體包括:將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為順序鄰接的第一圖形區(qū)域、第二圖形區(qū)域以及第三圖形區(qū)域;其中,第一圖形區(qū)域根據(jù)三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及第一條矩形直線段的兩個(gè)遠(yuǎn)交點(diǎn)頂點(diǎn)和近交點(diǎn)外頂點(diǎn)圍成;第二圖形區(qū)域根據(jù)三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及兩條矩形直線段各自的近交點(diǎn)外頂點(diǎn)圍成;第三圖形區(qū)域根據(jù)三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及第二條矩形直線段的兩個(gè)遠(yuǎn)交點(diǎn)頂點(diǎn)和近交點(diǎn)外頂點(diǎn)圍成。
[0042]具體地,參照?qǐng)D5,圖5中為一個(gè)數(shù)據(jù)點(diǎn)單元所表示的預(yù)計(jì)用兩條矩形直線段連接獲得的三點(diǎn)式折線段,其中D402、D404和D406為三個(gè)數(shù)據(jù)點(diǎn)。這里預(yù)計(jì)是指當(dāng)用兩條矩形直線段連接獲得的三點(diǎn)式折線段的情況。第一條矩形直線段P1P2P3P10與第二條矩形直線段P6P7P8P9具有兩個(gè)交點(diǎn)分別為數(shù)據(jù)點(diǎn)D404和預(yù)計(jì)內(nèi)交點(diǎn)P4,這里預(yù)計(jì)內(nèi)交點(diǎn)P4是指當(dāng)用兩條矩形直線段連接獲得三點(diǎn)式折線段時(shí)處于兩條直線段所構(gòu)成的角度內(nèi)部的交點(diǎn)。Pl和P2分別為第一條矩形直線段P1P2P3P10的遠(yuǎn)交點(diǎn)頂點(diǎn),其中Pl定義為遠(yuǎn)交點(diǎn)外頂點(diǎn),而P2則定義為遠(yuǎn)交點(diǎn)內(nèi)頂點(diǎn);P3和PlO分別為第一條矩形直線段P1P2P3P10的近交點(diǎn)頂點(diǎn),其中P3定義為近交點(diǎn)外頂點(diǎn),而PlO則定義為近交點(diǎn)內(nèi)頂點(diǎn)。類似地,P7和P8分別為第二條矩形直線段P6P7P8P9的遠(yuǎn)交點(diǎn)頂點(diǎn),其中P8定義為遠(yuǎn)交點(diǎn)外頂點(diǎn),而P7則定義為遠(yuǎn)交點(diǎn)內(nèi)頂點(diǎn);P6和P9分別為第一條矩形直線段P6P7P8P9的近交點(diǎn)頂點(diǎn),其中P6定義為近交點(diǎn)外頂點(diǎn),而P9則定義為近交點(diǎn)內(nèi)頂點(diǎn)。另外定義兩條矩形直線段外延線的交點(diǎn)P5為外延交點(diǎn)。
[0043]具體地,本實(shí)施例中,可將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段D402D404D406劃分為順序鄰接的第一圖形區(qū)域、第二圖形區(qū)域以及第三圖形區(qū)域。其中第一圖形區(qū)域可為圖5中的P1P2P3P4區(qū)域。第二圖形區(qū)域可為圖5中的P3P4P6區(qū)域,或者P3P4P5P6區(qū)域,或者線P3P4、線P4P6以及點(diǎn)P3和點(diǎn)P6之間的弧線構(gòu)成的扇形區(qū)域。第三圖形區(qū)域可為圖5中的P4P6P7P8區(qū)域。
[0044]在一個(gè)實(shí)施例中,第一圖形區(qū)域按照對(duì)角線劃分為兩個(gè)三角形子區(qū)域,具體地,如圖5所示,第一圖形區(qū)域P1P2P3P4可按照其對(duì)角線P1P4劃分為相互鄰接的兩個(gè)三角形子區(qū)域P1P3P4與P1P2P4,或者可按照其對(duì)角線P2P3劃分為兩個(gè)相互鄰接的三角形子區(qū)域P1P2P3和P2P3P4。劃分為三角形子區(qū)域,可以按照OpenGL(Open Graphics Library,圖形程序接口。是一套三維圖形處理庫(kù),也是該領(lǐng)域的工業(yè)標(biāo)準(zhǔn)。所謂計(jì)算機(jī)三維圖形是指將用數(shù)據(jù)描述的三維空間通過(guò)計(jì)算轉(zhuǎn)換成二維圖像并顯示或打印出來(lái)的技術(shù))的三角形紋理來(lái)直接貼圖繪制,效率很高。其中的紋理既包括通常意義上物體表面的紋理即使物體表面呈現(xiàn)凹凸不平的溝紋,同時(shí)也包括在物體的光滑表面上的圖案。
[0045]在一個(gè)實(shí)施例中,如圖6所示,圖6示出的是第二圖形區(qū)域的放大示意圖。本實(shí)施例中第二圖形區(qū)域?yàn)橐粋€(gè)或者多個(gè)順序鄰接的扇形區(qū)域。其中第二圖形區(qū)域?yàn)槎鄠€(gè)順序鄰接的扇形區(qū)域時(shí),每個(gè)扇形區(qū)域可以近似為一個(gè)三角形,可以直接按照OpenGL的三角形紋理來(lái)直接貼圖繪制,效率很高。
[0046]在一個(gè)實(shí)施例中,第二圖形區(qū)域按照對(duì)角線劃分為兩個(gè)三角形子區(qū)域,具體地,如圖5所示,第二圖形區(qū)域P4P6P7P8可按照其對(duì)角線P4P8劃分為相互鄰接的兩個(gè)三角形子區(qū)域P4P7P8與P4P6P8,或者可按照其對(duì)角線P6P7劃分為兩個(gè)相互鄰接的三角形子區(qū)域P4P6P7和P6P7P8。劃分為三角形子區(qū)域,可以按照OpenGL的三角形紋理來(lái)直接貼圖繪制,
效率很高。
[0047]在一個(gè)實(shí)施例中,還可以在分別繪制數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段的各個(gè)順序鄰接的圖形區(qū)域時(shí),根據(jù)設(shè)置采用相同或者不同類型的顏色的紋理來(lái)對(duì)各個(gè)圖形區(qū)域進(jìn)行貼圖繪制,且采用的紋理的顏色類型可以是漸變顏色類型。拆分為數(shù)據(jù)點(diǎn)單元并將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段拆分為多個(gè)順序鄰接的圖形區(qū)域,使得為折線段添加不同的顏色變的容易了很多。
[0048]上述繪制地圖中路線的方法,將數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合,這樣就能夠以數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制。其中相鄰的兩個(gè)三點(diǎn)式折線段之間的連接成為直線連接,可以無(wú)縫連接。而在繪制每個(gè)數(shù)據(jù)點(diǎn)單元時(shí),將其所表示的三點(diǎn)式折線段劃分為順序鄰接的圖形區(qū)域來(lái)分別進(jìn)行繪制,這樣順序鄰接的圖形區(qū)域就可以無(wú)縫連接在一起組成三點(diǎn)式折線段。這樣將所有數(shù)據(jù)點(diǎn)單元繪制完成后,就可以得到一條沒(méi)有連接空隙以及重復(fù)繪制的折線段路線,使得圖像品質(zhì)得到提升。
[0049]在一個(gè)實(shí)施例中,地圖中路線的繪制采用圖片紋理的方式進(jìn)行繪制,且圖片紋理的作為繪制的路線的邊緣的邊緣部位經(jīng)過(guò)透明漸進(jìn)處理。
[0050]在三維圖像中,受分辨率等因素的制約,物體邊緣總會(huì)或多或少的呈現(xiàn)三角形的鋸齒,如圖7中(a)中繪制的路線702,鋸齒情況明顯。為了克服這種圖形失真的情況,可以采用一些系統(tǒng)抗鋸齒(Ant1-aliasing,抗圖像折疊失真)方法來(lái)對(duì)繪制的路線進(jìn)行處理,比如可采用多重采樣抗鋸齒(MultiSampling Ant1-Aliasing,簡(jiǎn)稱MSAA)方法和覆蓋采樣抗鋸齒(CoverageSampling Ant1-Aliasing,簡(jiǎn)稱CSAA)方法等,其實(shí)現(xiàn)的抗鋸齒效果如圖7中(b)中繪制的路線704,邊緣的三角形鋸齒得到了很好的抑制。
[0051]優(yōu)選地,本實(shí)施例中采用圖片紋理的方式來(lái)繪制地圖中的路線,并同時(shí)對(duì)圖片紋理的邊緣部位做了透明漸進(jìn)處理。透明漸進(jìn)處理是指在圖片紋理的邊緣處部位某一預(yù)設(shè)位置開(kāi)始,越遠(yuǎn)離圖片紋理的中心透明度越高,這樣在圖片紋理最邊緣的位置基本變成透明??梢岳斫獾氖?,這里的圖片紋理的邊緣部位是指對(duì)應(yīng)繪制的路線的邊緣的邊緣部位。具體如圖8所示,其中802所示的圖像區(qū)域中的圖像用來(lái)表示透明區(qū)域,對(duì)于圖片紋理的左邊緣區(qū)域804,越遠(yuǎn)離圖片紋理中心越透明,類似地,對(duì)于圖片紋理的右邊緣區(qū)域806,越遠(yuǎn)離圖片紋理中心越透明。其中透明漸進(jìn)的透明程度以及漸變程度可以根據(jù)線條寬度和/或?qū)嶋H需求設(shè)定。由于路線的鋸齒通常是由于邊緣的疊加造成,這樣處理鋸齒問(wèn)題就得到了更進(jìn)一步的抑制。如圖7中(c)中繪制的路線706,基本已經(jīng)看不到鋸齒,繪制的路線質(zhì)量很高。
[0052]在一個(gè)實(shí)施例中,步驟302之前,還包括步驟:根據(jù)地圖的顯示比例尺,對(duì)數(shù)據(jù)點(diǎn)序列進(jìn)行抽稀處理。
[0053]具體地,對(duì)于地圖中較長(zhǎng)的路線,采用上述實(shí)施例中的繪制地圖中路線的方法進(jìn)行繪制,會(huì)存在繪制效率低的問(wèn)題,因?yàn)樵谝粋€(gè)實(shí)施例中,繪制每個(gè)數(shù)據(jù)點(diǎn)單元,都需要繪制4個(gè)三角形和X個(gè)扇形,繪制整條路線就共需要繪制(M-2)*(4+X)個(gè)圖形。
[0054]為了解決這一問(wèn)題,本實(shí)施例中在步驟302之前根據(jù)地圖的顯示比例尺來(lái)對(duì)數(shù)據(jù)點(diǎn)序列進(jìn)行抽稀處理。其中抽稀是指通過(guò)某種算法,在保證曲線形狀不變的情況下,最大限度地減少數(shù)據(jù)點(diǎn)個(gè)數(shù)的過(guò)程。具體地,繪制的路線顯示在地圖上,會(huì)因?yàn)榈貓D顯示比例尺的不同而顯示出完全不同的效果。如圖9(a)所示,在1:10米比例尺下較長(zhǎng)的路線902存在很多細(xì)節(jié),而如圖9 (b)所示,同樣的路線在1:50米比例尺下就變成了較短的近似直線的路線904。這種情況下就沒(méi)有必要依據(jù)數(shù)據(jù)點(diǎn)序列中所有數(shù)據(jù)點(diǎn)來(lái)繪制路線。本實(shí)施例根據(jù)地圖的顯示比例尺的不同,對(duì)數(shù)據(jù)點(diǎn)序列進(jìn)行不同程度的抽稀處理。
[0055]在一個(gè)實(shí)施例中,對(duì)數(shù)據(jù)點(diǎn)序列進(jìn)行抽稀處理的具體過(guò)程為:在數(shù)據(jù)點(diǎn)序列中依次選取相鄰的三個(gè)數(shù)據(jù)點(diǎn)為第一數(shù)據(jù)點(diǎn)、第二數(shù)據(jù)點(diǎn)和第三數(shù)據(jù)點(diǎn),如果第二數(shù)據(jù)點(diǎn)與第一數(shù)據(jù)點(diǎn)的直線距離以及第二數(shù)據(jù)點(diǎn)與第一數(shù)據(jù)點(diǎn)的直線距離的和小于預(yù)設(shè)像素個(gè)數(shù),則刪除該第二數(shù)據(jù)點(diǎn),直至將數(shù)據(jù)點(diǎn)序列中的所有數(shù)據(jù)點(diǎn)處理完畢。這樣依次判斷每相鄰3個(gè)數(shù)據(jù)點(diǎn),將會(huì)刪除較多沒(méi)必要繪制的折線段。這樣繪制效果基本不受影響,繪制效率卻高了很多。其中預(yù)設(shè)像素個(gè)數(shù)優(yōu)選為5個(gè),此時(shí)效果最好。
[0056]在一個(gè)實(shí)施例中,步驟302之前,還包括步驟:將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列中超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除。
[0057]具體地,對(duì)于一整段較長(zhǎng)的折線段,當(dāng)顯示比例尺較大時(shí)每個(gè)數(shù)據(jù)點(diǎn)偏離相鄰兩點(diǎn)的距離都很大,這就可能使得抽稀處理方式無(wú)效。然而,在大的顯示比例尺下,作為路線的較長(zhǎng)的折線段,其大部分不會(huì)顯示在地圖最終的顯示區(qū)域中,此時(shí)可根據(jù)地圖的顯示區(qū)域大小,將數(shù)據(jù)點(diǎn)序列中超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除。而當(dāng)接收到操作指令而要顯示地圖的另一個(gè)顯示區(qū)域從而要顯示路線的另一部分時(shí),則再執(zhí)行將原始的數(shù)據(jù)點(diǎn)序列中超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除的步驟。這樣只有在地圖顯示區(qū)域內(nèi)的路線才會(huì)被繪制,不顯示的則不繪制,提高了繪制的效率??梢岳斫獾氖牵瑢?duì)數(shù)據(jù)點(diǎn)序列進(jìn)行抽稀處理以及將超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除的實(shí)施例并不矛盾,可以結(jié)合在一起。
[0058]在一個(gè)實(shí)施例中,該繪制地圖中路線的方法還包括:根據(jù)待繪制的路線類型確定線條類型,并采用確定的線條類型來(lái)繪制路線;其中,線條類型包括不同寬度的線條、不同顏色的線條、虛線條、點(diǎn)劃線條、實(shí)線條以及包含間隔設(shè)置的預(yù)設(shè)圖標(biāo)的線條中的至少一種。
[0059]具體地,地圖可以顯示多種類型的路線,比如駕車導(dǎo)航路線、步行路線以及公交路線等,可預(yù)先固化或者用戶自定義設(shè)置路線類型和線條類型的對(duì)應(yīng)關(guān)系,從而此時(shí)可根據(jù)待繪制的路線類型來(lái)確定線條類型,從而采用確定的線條類型來(lái)繪制路線。
[0060]其中采用不同寬度的線條所繪制的路線如圖10和圖11所示,其中圖10中繪制的路線為采用預(yù)設(shè)的普通寬度的線條所繪制的路線,適用于常規(guī)路線的表示;圖11中為采用預(yù)設(shè)的粗線條所繪制的路線,適用于駕車導(dǎo)航路線的表示。采用虛線條類型所繪制的路線如圖12所示,具體圖12中的路線采用的是點(diǎn)虛線類型,當(dāng)然還可以采用短橫虛線類型,虛線條類型尤其適用于步行路線的表示。實(shí)線條類型包括上述的折線段路線類型,還可以是平滑的曲線類型。包含間隔設(shè)置的預(yù)設(shè)圖標(biāo)的線條類型如圖13所示,圖13中間隔設(shè)置的預(yù)設(shè)圖標(biāo)為箭頭圖標(biāo),還可以采用三角形等具有方向指向功能的圖標(biāo),可以方便地指示出路線的行進(jìn)方向。
[0061]如圖14所示,在一個(gè)實(shí)施例中,提供了一種繪制地圖中路線的裝置1400,用于實(shí)現(xiàn)上述的繪制地圖中路線的方法,該繪制地圖中路線的裝置1400包括拆分模塊1402和繪制執(zhí)行模塊1404。
[0062]拆分模塊1402,用于將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合。
[0063]折線段路線是指需要繪制得到的折線段,數(shù)據(jù)點(diǎn)序列是用于繪制該折線段路線所要依據(jù)的數(shù)據(jù)層數(shù)據(jù)。數(shù)據(jù)點(diǎn)序列中任意一個(gè)數(shù)據(jù)點(diǎn)可以用其所在坐標(biāo)表示,也可以用其相對(duì)于預(yù)設(shè)固定點(diǎn)的相對(duì)位置來(lái)表示。數(shù)據(jù)點(diǎn)序列則是按順序排列而成的數(shù)據(jù)點(diǎn)的集合,將該數(shù)據(jù)點(diǎn)序列中的數(shù)據(jù)點(diǎn)按順序連接起來(lái)就能夠得到折線段路線。優(yōu)選地,數(shù)據(jù)點(diǎn)序列中任意連續(xù)的三個(gè)數(shù)據(jù)點(diǎn)所表示的點(diǎn)不在一條直線上,事先可以將數(shù)據(jù)點(diǎn)序列中可以連成一條直線的連續(xù)的三個(gè)以上的數(shù)據(jù)點(diǎn)合并為兩個(gè)數(shù)據(jù)點(diǎn)。
[0064]三點(diǎn)式折線段是指三個(gè)不在一條直線上的數(shù)據(jù)點(diǎn)順序連接所構(gòu)成的折線段形的繪制單元,表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元?jiǎng)t是用于繪制該三點(diǎn)式折線段的數(shù)據(jù)層數(shù)據(jù)。將數(shù)據(jù)點(diǎn)序列進(jìn)行拆分處理后,獲得數(shù)據(jù)點(diǎn)單元的集合,該集合中的數(shù)據(jù)點(diǎn)單元可以按順序排列,也可以不按順序排列。
[0065]在一個(gè)實(shí)施例中,拆分模塊1402用于在用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列所表示的直線段序列中,將除首尾直線段外的剩余的每個(gè)直線段分別在中點(diǎn)位置處拆分,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合。
[0066]具體地,如圖4所示,假設(shè)數(shù)據(jù)點(diǎn)序列為01|02|03|04|05|06,那么該數(shù)據(jù)點(diǎn)序列所表示的直線段序列為L(zhǎng)12|L23|L34|L45|L56。其中首尾直線段分別為L(zhǎng)12和L56,拆分模塊1402用于出去直線段L12和L56之后,將剩余的每個(gè)直線段L23、L34、L45分別在預(yù)設(shè)位置處拆分出新的數(shù)據(jù)點(diǎn)分別為D23、D34和D45。然后拆分模塊1402用于將每首尾相接的連續(xù)的三個(gè)數(shù)據(jù)點(diǎn)進(jìn)行組合,就獲得了表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合為{Dl|D2|D23、D23|D3|D34、D34|D4|D45、D45 | D5 | D6},其中數(shù)據(jù)點(diǎn)單元 Dl | D2 | D23 與D23 ID3 ID34通過(guò)數(shù)據(jù)點(diǎn)D23首尾相接,數(shù)據(jù)點(diǎn)單元D23 | D3 | D34和D34 | D4 | D45通過(guò)數(shù)據(jù)點(diǎn)D34首尾相接,數(shù)據(jù)點(diǎn)單元D34 ID4 | D45和D45 | D5 | D6通過(guò)數(shù)據(jù)點(diǎn)D45首尾相接。
[0067]其中預(yù)設(shè)位置的選取可以按需要選取,比如為剩余的每個(gè)折線段的三分之一處、五分之二處等,優(yōu)選預(yù)設(shè)位置為剩余的每個(gè)折線段的中點(diǎn),此時(shí)拆分出的數(shù)據(jù)點(diǎn)可以根據(jù)相鄰兩個(gè)數(shù)據(jù)點(diǎn)的坐標(biāo)取平均值獲得。在中點(diǎn)處拆分可以使得拆分獲得的兩個(gè)數(shù)據(jù)點(diǎn)單元能夠具有足夠長(zhǎng)度且不重疊的直線段,便于后續(xù)以數(shù)據(jù)點(diǎn)單元為單位所進(jìn)行的繪制。本實(shí)施例中除首尾直線段外的剩余的每個(gè)直線段進(jìn)行拆分處理,當(dāng)然也可以將首尾直線段進(jìn)行拆分處理,這樣除了獲得三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合,還會(huì)獲得表示新的兩個(gè)首尾直線段的數(shù)據(jù)點(diǎn)組合,其與該集合中相應(yīng)的數(shù)據(jù)點(diǎn)單元同樣是直線連接,可以無(wú)縫連接,僅在繪制時(shí)多出繪制這兩個(gè)數(shù)據(jù)點(diǎn)組合的過(guò)程。
[0068]繪制執(zhí)行模塊1404,用于以數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制,且在繪制每個(gè)數(shù)據(jù)點(diǎn)單元時(shí),將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制。
[0069]具體地,繪制執(zhí)行模塊1404用于分別根據(jù)數(shù)據(jù)點(diǎn)單元的集合中的每個(gè)數(shù)據(jù)點(diǎn)單元進(jìn)行繪制,這樣每個(gè)數(shù)據(jù)點(diǎn)單元分別作為一個(gè)繪制單元進(jìn)行繪制,因在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行了拆分處理,因此繪制單元之間的連接處為直線連接,相鄰兩個(gè)繪制單元分別繪制后可以將兩者無(wú)縫連接起來(lái),避免出現(xiàn)連接空隙和重復(fù)繪制。
[0070]繪制執(zhí)行模塊1404用于在繪制每個(gè)數(shù)據(jù)點(diǎn)單元時(shí),將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制,這樣繪制時(shí),每個(gè)圖形區(qū)域可以分別被獨(dú)立繪制,而由于圖形區(qū)域的順序鄰接,各個(gè)圖形區(qū)域就可以無(wú)縫組合起來(lái)構(gòu)成完整的三點(diǎn)式折線段,避免出現(xiàn)連接空隙和重復(fù)繪制。
[0071]上述繪制地圖中路線的裝置1400,將數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合,這樣就能夠以數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制。其中相鄰的兩個(gè)三點(diǎn)式折線段之間的連接成為直線連接,可以無(wú)縫連接。而在繪制每個(gè)數(shù)據(jù)點(diǎn)單元時(shí),將其所表示的三點(diǎn)式折線段劃分為順序鄰接的圖形區(qū)域來(lái)分別進(jìn)行繪制,這樣順序鄰接的圖形區(qū)域就可以無(wú)縫連接在一起組成三點(diǎn)式折線段。這樣將所有數(shù)據(jù)點(diǎn)單元繪制完成后,就可以得到一條沒(méi)有連接空隙以及重復(fù)繪制的折線段路線,使得圖像品質(zhì)得到提升。
[0072]在一個(gè)實(shí)施例中,繪制執(zhí)行模塊1404還用于將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為順序鄰接的第一圖形區(qū)域、第二圖形區(qū)域以及第三圖形區(qū)域;其中,第一圖形區(qū)域根據(jù)三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及第一條矩形直線段的兩個(gè)遠(yuǎn)交點(diǎn)頂點(diǎn)和近交點(diǎn)外頂點(diǎn)圍成;第二圖形區(qū)域根據(jù)三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及兩條矩形直線段各自的近交點(diǎn)外頂點(diǎn)圍成;第三圖形區(qū)域根據(jù)三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及第二條矩形直線段的兩個(gè)遠(yuǎn)交點(diǎn)頂點(diǎn)和近交點(diǎn)外頂點(diǎn)圍成。
[0073]具體地,參照?qǐng)D5,圖5中為一個(gè)數(shù)據(jù)點(diǎn)單元所表示的預(yù)計(jì)用兩條矩形直線段連接獲得的三點(diǎn)式折線段,其中D402、D404和D406為三個(gè)數(shù)據(jù)點(diǎn)。這里預(yù)計(jì)是指當(dāng)用兩條矩形直線段連接獲得的三點(diǎn)式折線段的情況。第一條矩形直線段P1P2P3P10與第二條矩形直線段P6P7P8P9具有兩個(gè)交點(diǎn)分別為數(shù)據(jù)點(diǎn)D404和預(yù)計(jì)內(nèi)交點(diǎn)P4,這里預(yù)計(jì)內(nèi)交點(diǎn)P4是指當(dāng)用兩條矩形直線段連接獲得三點(diǎn)式折線段時(shí)處于兩條直線段所構(gòu)成的角度內(nèi)部的交點(diǎn)。Pl和P2分別為第一條矩形直線段P1P2P3P10的遠(yuǎn)交點(diǎn)頂點(diǎn),其中Pl定義為遠(yuǎn)交點(diǎn)外頂點(diǎn),而P2則定義為遠(yuǎn)交點(diǎn)內(nèi)頂點(diǎn);P3和PlO分別為第一條矩形直線段P1P2P3P10的近交點(diǎn)頂點(diǎn),其中P3定義為近交點(diǎn)外頂點(diǎn),而PlO則定義為近交點(diǎn)內(nèi)頂點(diǎn)。類似地,P7和P8分別為第二條矩形直線段P6P7P8P9的遠(yuǎn)交點(diǎn)頂點(diǎn),其中P8定義為遠(yuǎn)交點(diǎn)外頂點(diǎn),而P7則定義為遠(yuǎn)交點(diǎn)內(nèi)頂點(diǎn);P6和P9分別為第一條矩形直線段P6P7P8P9的近交點(diǎn)頂點(diǎn),其中P6定義為近交點(diǎn)外頂點(diǎn),而P9則定義為近交點(diǎn)內(nèi)頂點(diǎn)。另外定義兩條矩形直線段外延線的交點(diǎn)P5為外延交點(diǎn)。
[0074]具體地,本實(shí)施例中,繪制執(zhí)行模塊1404可用于將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段D402D404D406劃分為順序鄰接的第一圖形區(qū)域、第二圖形區(qū)域以及第三圖形區(qū)域。其中第一圖形區(qū)域可為圖5中的P1P2P3P4區(qū)域。第二圖形區(qū)域可為圖5中的P3P4P6區(qū)域,或者P3P4P5P6區(qū)域,或者線P3P4、線P4P6以及點(diǎn)P3和點(diǎn)P6之間的弧線構(gòu)成的扇形區(qū)域。第三圖形區(qū)域可為圖5中的P4P6P7P8區(qū)域。
[0075]在一個(gè)實(shí)施例中,繪制執(zhí)行模塊1404可用于將第一圖形區(qū)域按照對(duì)角線劃分為兩個(gè)三角形子區(qū)域,具體地,如圖5所示,第一圖形區(qū)域P1P2P3P4可按照其對(duì)角線P1P4劃分為相互鄰接的兩個(gè)三角形子區(qū)域P1P3P4與P1P2P4,或者可按照其對(duì)角線P2P3劃分為兩個(gè)相互鄰接的三角形子區(qū)域P1P2P3和P2P3P4。劃分為三角形子區(qū)域,可以按照OpenGL(Open Graphics Library,圖形程序接口。是一套三維圖形處理庫(kù),也是該領(lǐng)域的工業(yè)標(biāo)準(zhǔn)。所謂計(jì)算機(jī)三維圖形是指將用數(shù)據(jù)描述的三維空間通過(guò)計(jì)算轉(zhuǎn)換成二維圖像并顯示或打印出來(lái)的技術(shù))的三角形紋理來(lái)直接貼圖繪制,效率很高。其中的紋理既包括通常意義上物體表面的紋理即使物體表面呈現(xiàn)凹凸不平的溝紋,同時(shí)也包括在物體的光滑表面上的圖案。
[0076]在一個(gè)實(shí)施例中,如圖6所示,圖6示出的是第二圖形區(qū)域的放大示意圖。本實(shí)施例中第二圖形區(qū)域?yàn)橐粋€(gè)或者多個(gè)順序鄰接的扇形區(qū)域。其中第二圖形區(qū)域?yàn)槎鄠€(gè)順序鄰接的扇形區(qū)域時(shí),每個(gè)扇形區(qū)域可以近似為一個(gè)三角形,可以直接按照OpenGL的三角形紋理來(lái)直接貼圖繪制,效率很高。
[0077]在一個(gè)實(shí)施例中,繪制執(zhí)行模塊1404可用于將第二圖形區(qū)域按照對(duì)角線劃分為兩個(gè)三角形子區(qū)域,具體地,如圖5所示,第二圖形區(qū)域P4P6P7P8可按照其對(duì)角線P4P8劃分為相互鄰接的兩個(gè)三角形子區(qū)域P4P7P8與P4P6P8,或者可按照其對(duì)角線P6P7劃分為兩個(gè)相互鄰接的三角形子區(qū)域P4P6P7和P6P7P8。劃分為三角形子區(qū)域,可以按照OpenGL的三角形紋理來(lái)直接貼圖繪制,效率很高。
[0078]在一個(gè)實(shí)施例中,繪制執(zhí)行模塊1404還可用于在分別繪制數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段的各個(gè)順序鄰接的圖形區(qū)域時(shí),根據(jù)設(shè)置采用相同或者不同類型的顏色的紋理來(lái)對(duì)各個(gè)圖形區(qū)域進(jìn)行貼圖繪制,且采用的紋理的顏色類型可以是漸變顏色類型。拆分為數(shù)據(jù)點(diǎn)單元并將數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段拆分為多個(gè)順序鄰接的圖形區(qū)域,使得為折線段添加不同的顏色變的容易了很多。
[0079]—個(gè)實(shí)施例中,地圖中路線的繪制采用圖片紋理的方式進(jìn)行繪制,且圖片紋理的作為繪制的路線的邊緣的邊緣部位經(jīng)過(guò)透明漸進(jìn)處理。
[0080]在三維圖像中,受分辨率等因素的制約,物體邊緣總會(huì)或多或少的呈現(xiàn)三角形的鋸齒,如圖7中(a)中繪制的路線702,鋸齒情況明顯。為了克服這種圖形失真的情況,繪制執(zhí)行模塊1404可以用于采用一些抗鋸齒的技術(shù)手段來(lái)對(duì)繪制的路線進(jìn)行處理,比如可采用多重采樣抗鋸齒方法和覆蓋采樣抗鋸齒方法等,其實(shí)現(xiàn)的抗鋸齒效果如圖7中(b)中繪制的路線704,邊緣的三角形鋸齒得到了很好的抑制。
[0081]優(yōu)選地,本實(shí)施例中繪制執(zhí)行模塊1404用于采用圖片紋理的方式來(lái)繪制地圖中的路線,并同時(shí)對(duì)圖片紋理的邊緣部位做了透明漸進(jìn)處理。透明漸進(jìn)處理是指在圖片紋理的邊緣處部位某一預(yù)設(shè)位置開(kāi)始,越遠(yuǎn)離圖片紋理的中心透明度越高,這樣在圖片紋理最邊緣的位置基本變成透明。這樣由于路線的鋸齒通常是由于邊緣的疊加造成,這樣處理鋸齒問(wèn)題就得到了更進(jìn)一步的抑制。如圖7中(c)中繪制的路線706,基本已經(jīng)看不到鋸齒,繪制的路線質(zhì)量很高。
[0082]如圖15所示,在一個(gè)實(shí)施例中,該繪制地圖中路線的裝置1400還包括抽稀處理模塊1401,用于根據(jù)地圖的顯示比例尺,對(duì)數(shù)據(jù)點(diǎn)序列進(jìn)行抽稀處理。
[0083]具體地,本實(shí)施例中抽稀處理模塊1401用于根據(jù)地圖的顯示比例尺來(lái)對(duì)數(shù)據(jù)點(diǎn)序列進(jìn)行抽稀處理。具體地,繪制的路線顯示在地圖上,會(huì)因?yàn)榈貓D顯示比例尺的不同而顯示出完全不同的效果。如圖9(a)所示,在1:10米比例尺下較長(zhǎng)的路線902存在很多細(xì)節(jié),而如圖9(b)所示,同樣的路線在1:50米比例尺下就變成了較短的近似直線的路線904。這種情況下就沒(méi)有必要依據(jù)數(shù)據(jù)點(diǎn)序列中所有數(shù)據(jù)點(diǎn)來(lái)繪制路線。本實(shí)施例中抽稀處理模塊1401用于根據(jù)地圖的顯示比例尺的不同,對(duì)數(shù)據(jù)點(diǎn)序列進(jìn)行不同程度的抽稀處理。
[0084]在一個(gè)實(shí)施例中,抽稀處理模塊1401具體用于在數(shù)據(jù)點(diǎn)序列中依次選取相鄰的三個(gè)數(shù)據(jù)點(diǎn)為第一數(shù)據(jù)點(diǎn)、第二數(shù)據(jù)點(diǎn)和第三數(shù)據(jù)點(diǎn),如果第二數(shù)據(jù)點(diǎn)與第一數(shù)據(jù)點(diǎn)的直線距離以及第二數(shù)據(jù)點(diǎn)與第一數(shù)據(jù)點(diǎn)的直線距離的和小于預(yù)設(shè)像素個(gè)數(shù),則刪除該第二數(shù)據(jù)點(diǎn),直至將數(shù)據(jù)點(diǎn)序列中的所有數(shù)據(jù)點(diǎn)處理完畢。這樣依次判斷每相鄰3個(gè)數(shù)據(jù)點(diǎn),將會(huì)刪除較多沒(méi)必要繪制的折線段。這樣繪制效果基本不受影響,繪制效率卻高了很多。其中預(yù)設(shè)像素個(gè)數(shù)優(yōu)選為5個(gè),此時(shí)效果最好。
[0085]如圖16所示,在一個(gè)實(shí)施例中,繪制地圖中路線的裝置1400還包括:數(shù)據(jù)點(diǎn)剔除模塊1403,用于將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列中超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除。
[0086]具體地,對(duì)于一整段較長(zhǎng)的折線段,當(dāng)顯示比例尺較大時(shí)每個(gè)數(shù)據(jù)點(diǎn)偏離相鄰兩點(diǎn)的距離都很大,這就可能使得抽稀處理方式無(wú)效。然而,在大的顯示比例尺下,作為路線的較長(zhǎng)的折線段,其大部分不會(huì)顯示在地圖最終的顯示區(qū)域中,數(shù)據(jù)點(diǎn)剔除模塊1403可用于根據(jù)地圖的顯示區(qū)域大小,將數(shù)據(jù)點(diǎn)序列中超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除。而數(shù)據(jù)點(diǎn)剔除模塊1403用于當(dāng)接收到操作指令而要顯示地圖的另一個(gè)顯示區(qū)域從而要顯示路線的另一部分時(shí),則再執(zhí)行將原始的數(shù)據(jù)點(diǎn)序列中超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除。這樣只有在地圖顯示區(qū)域內(nèi)的路線才會(huì)被繪制,不顯示的則不繪制,提高了繪制的效率。
[0087]在一個(gè)實(shí)施例中,繪制執(zhí)行模塊1404還用于根據(jù)待繪制的路線類型確定線條類型,并采用確定的線條類型來(lái)繪制路線;其中,線條類型包括不同寬度的線條、不同顏色的線條、虛線條、點(diǎn)劃線條、實(shí)線條以及包含間隔設(shè)置的預(yù)設(shè)圖標(biāo)的線條中的至少一種。
[0088]具體地,地圖可以顯示多種類型的路線,比如駕車導(dǎo)航路線、步行路線以及公交路線等,可預(yù)先固化或者用戶自定義設(shè)置路線類型和線條類型的對(duì)應(yīng)關(guān)系,從而繪制執(zhí)行模塊1404可用于根據(jù)待繪制的路線類型來(lái)確定線條類型,從而采用確定的線條類型來(lái)繪制路線。
[0089]其中采用不同寬度的線條所繪制的路線如圖10和圖11所示,其中圖10中繪制的路線為采用預(yù)設(shè)的普通寬度的線條所繪制的路線,適用于常規(guī)路線的表示;圖11中為采用預(yù)設(shè)的粗線條所繪制的路線,適用于駕車導(dǎo)航路線的表示。采用虛線條類型所繪制的路線如圖12所示,具體圖12中的路線采用的是點(diǎn)虛線類型,當(dāng)然還可以采用短橫虛線類型,虛線條類型尤其適用于步行路線的表示。實(shí)線條類型包括上述的折線段路線類型,還可以是平滑的曲線類型。包含間隔設(shè)置的預(yù)設(shè)圖標(biāo)的線條類型如圖13所示,圖13中間隔設(shè)置的預(yù)設(shè)圖標(biāo)為箭頭圖標(biāo),還可以采用三角形等具有方向指向功能的圖標(biāo),可以方便地指示出路線的行進(jìn)方向。
[0090]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
[0091]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種繪制地圖中路線的方法,所述方法包括: 將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合; 以所述數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制,且 在繪制每個(gè)所述數(shù)據(jù)點(diǎn)單元時(shí),將所述數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合,包括: 在用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列所表示的直線段序列中,將除首尾直線段外的剩余的每個(gè)直線段分別在中點(diǎn)位置處拆分,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制,包括: 將所述數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為順序鄰接的第一圖形區(qū)域、第二圖形區(qū)域以及第三圖形區(qū)域;其中, 所述第一圖形區(qū)域根據(jù)所述三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及第一條矩形直線段的兩個(gè)遠(yuǎn)交點(diǎn)頂點(diǎn)和近交點(diǎn)外頂點(diǎn)圍成; 所述第二圖形區(qū)域根據(jù)所述三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及所述兩條矩形直線段各自的近交點(diǎn)外頂點(diǎn)圍成; 所述第三圖形區(qū)域根據(jù)所述三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及第二條矩形直線段的兩個(gè)遠(yuǎn)交點(diǎn)頂點(diǎn)和近交點(diǎn)外頂點(diǎn)圍成。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述第一圖形區(qū)域按照對(duì)角線劃分為兩個(gè)三角形子區(qū)域;和/或, 所述第二圖形區(qū)域?yàn)橐粋€(gè)或者多個(gè)順序鄰接的扇形區(qū)域;和/或, 所述第三圖形區(qū)域按照對(duì)角線劃分為兩個(gè)三角形子區(qū)域。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述地圖中路線的繪制采用圖片紋理的方式進(jìn)行繪制,且所述圖片紋理的作為所述繪制的路線的邊緣的邊緣部位經(jīng)過(guò)透明漸進(jìn)處理。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列進(jìn)行拆分處理之前,還包括: 根據(jù)地圖的顯示比例尺,對(duì)所述數(shù)據(jù)點(diǎn)序列進(jìn)行抽稀處理。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列進(jìn)行拆分處理之前,還包括: 將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列中超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 根據(jù)待繪制的路線類型確定線條類型,并采用確定的線條類型來(lái)繪制路線;其中,所述線條類型包括不同寬度的線條、不同顏色的線條、虛線條、點(diǎn)劃線條、實(shí)線條以及包含間隔設(shè)置的預(yù)設(shè)圖標(biāo)的線條中的至少一種。
9.一種繪制地圖中路線的裝置,其特征在于,所述裝置包括: 拆分模塊,用于將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列在連接相鄰數(shù)據(jù)點(diǎn)的直線段處進(jìn)行拆分處理,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合; 繪制執(zhí)行模塊,用于以所述數(shù)據(jù)點(diǎn)單元為單位進(jìn)行繪制,且在繪制每個(gè)所述數(shù)據(jù)點(diǎn)單元時(shí),將所述數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為多個(gè)順序鄰接的圖形區(qū)域分別進(jìn)行繪制。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述拆分模塊還用于在用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列所表示的直線段序列中,將除首尾直線段外的剩余的每個(gè)直線段分別在中點(diǎn)位置處拆分,獲得表示三點(diǎn)式折線段的數(shù)據(jù)點(diǎn)單元的集合。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述繪制執(zhí)行模塊還用于將所述數(shù)據(jù)點(diǎn)單元所表示的三點(diǎn)式折線段劃分為順序鄰接的第一圖形區(qū)域、第二圖形區(qū)域以及第三圖形區(qū)域;其中,所述第一圖形區(qū)域根據(jù)所述三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及第一條矩形直線段的兩個(gè)遠(yuǎn)交點(diǎn)頂點(diǎn)和近交點(diǎn)外頂點(diǎn)圍成;所述第二圖形區(qū)域根據(jù)所述三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及所述兩條矩形直線段各自的近交點(diǎn)外頂點(diǎn)圍成;所述第三圖形區(qū)域根據(jù)所述三點(diǎn)式折線段的兩條矩形直線段的預(yù)計(jì)內(nèi)交點(diǎn)以及第二條矩形直線段的兩個(gè)遠(yuǎn)交點(diǎn)頂點(diǎn)和近交點(diǎn)外頂點(diǎn)圍成。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第一圖形區(qū)域按照對(duì)角線劃分為兩個(gè)三角形子區(qū)域;和/或, 所述第二圖形區(qū)域?yàn)橐粋€(gè)或者多個(gè)順序鄰接的扇形區(qū)域;和/或, 所述第三圖形區(qū)域按照對(duì)角線劃分為兩個(gè)三角形子區(qū)域。
13.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述地圖中路線的繪制采用圖片紋理的方式進(jìn)行繪制,且所述圖片紋理的作為所述繪制的路線的邊緣的邊緣部位經(jīng)過(guò)透明漸進(jìn)處理。
14.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 抽稀處理模塊,用于根據(jù)地圖的顯示比例尺,對(duì)所述數(shù)據(jù)點(diǎn)序列進(jìn)行抽稀處理。
15.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 數(shù)據(jù)點(diǎn)剔除模塊,用于將用來(lái)繪制折線段路線的數(shù)據(jù)點(diǎn)序列中超出地圖顯示區(qū)域的數(shù)據(jù)點(diǎn)剔除。
16.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述繪制執(zhí)行模塊還用于根據(jù)待繪制的路線類型確定線條類型,并采用確定的線條類型來(lái)繪制路線;其中,所述線條類型包括不同寬度的線條、不同顏色的線條、虛線條、點(diǎn)劃線條、實(shí)線條以及包含間隔設(shè)置的預(yù)設(shè)圖標(biāo)的線條中的至少一種。
【文檔編號(hào)】G06T11/20GK104268911SQ201410478537
【公開(kāi)日】2015年1月7日 申請(qǐng)日期:2014年9月18日 優(yōu)先權(quán)日:2014年9月18日
【發(fā)明者】張穎峰, 王長(zhǎng)春, 周康 申請(qǐng)人:騰訊科技(深圳)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永康市| 儋州市| 永新县| 平遥县| 分宜县| 长泰县| 江门市| 太原市| 枣阳市| 拉萨市| 正定县| 麻阳| 盖州市| 丹棱县| 黑水县| 明星| 定南县| 平顺县| 新巴尔虎左旗| 龙门县| 咸宁市| 禹城市| 长子县| 西吉县| 松潘县| 寿阳县| 阆中市| 洛宁县| 道真| 太仓市| 赤水市| 盈江县| 禄丰县| 白朗县| 高碑店市| 威宁| 东阳市| 沈丘县| 太白县| 汶上县| 高州市|